Esegui lo script della shell su un supporto HDD esterno specificato

1

Conservo alcuni file su un HDD esterno e volevo sapere cosa c'è al momento su di esso senza collegarlo.

Ho modificato questo comando per ottenere un file .txt con una struttura ad albero del mio cartelle su quell'HDD caricato sul mio iCloud Drive quando lo connetto al mio MBP.

Questo è il mio comando modificato che ho salvato come .sh, ora salvando il file sul desktop:

ls -R /Volumes/2TB/ sed -e '/^[^:]*$/d' -e 's/://' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' > /Volumes/SSD/Users/V/Desktop/File.txt

Finora ho creato una scorciatoia in BTT che esegue lo script ma mi piacerebbe che fosse eseguito quando collego quell'HDD.

Qualcuno ha suggerito che posso creare un launchd con la chiave StartOnMount. Il problema è che, per quanto comprendo da questo thread , non è possibile impostare con volume specificato.

Qualche idea?

    
posta lavventura 30.09.2016 - 15:58
fonte

1 risposta

1

In questo esempio, l'output di df viene convogliato su grep che sta cercando di corrispondere al punto di montaggio del disco rigido /Volumes/2TB . Lo stato di uscita di grep determina il risultato della condizione e ! inverte la logica.

if ! df | grep -q '\/Volumes\/2TB$'
then 
    exit 0
fi

In una frase dice, se grep non corrisponde a /Volumes/2TB , quindi esci dallo script.

Vorrei scrivere lo script in questo modo per mettere tutto insieme.

#!/bin/sh
#
#
if ! df | grep -q '\/Volumes\/2TB$'
then 
    exit 0
fi

ls -R /Volumes/2TB/ |
    sed -e '/^[^:]*$/d' \
        -e 's/://' \
        -e 's/[^-][^\/]*\//--/g' \
        -e 's/^/ /' \
        -e 's/-/|/' >/Volumes/SSD/Users/V/Desktop/File.txt 
    
risposta data 30.09.2016 - 19:41
fonte

Leggi altre domande sui tag