Il comando che hai pubblicato ha due parti
-
find /Volumes/Documents/ -exec stat -f "%N %Sm" {} +
-
>~/Desktop/test.txt
La seconda parte è più semplice da spiegare, scrive solo tutto l'output del primo in un file chiamato test.txt
che è memorizzato sul desktop. Se lasci questa parte, il risultato di find
verrà scritto direttamente nella finestra del Terminale.
La prima parte è il comando find
effettivo. In pratica una chiamata a find
ottiene due tipi di parametri
- uno o più percorsi che fungono da punto di partenza per la ricerca (
/Volumes/Documents/
nel tuo caso)
- una o più espressioni dette "trova comandi" che vengono applicati a tutti i file / cartelle trovati
Una versione semplice sarebbe come find /Volumes/Documents/ -print
che stampa solo tutti i file / cartelle trovati.
Nel tuo esempio la parte dell'espressione è un po 'più elaborata:
-
-exec
esegue un comando sui risultati di find ( stat -f "%N %Sm"
in realtà)
-
stat
fornisce informazioni su un file.
-
L'opzione -f
per stat visualizza le informazioni utilizzando un formato specificato.
-
%N %Sm
è il formato utilizzato da -f
.
-
%
indica una stringa di formato.
-
N
significa stampare il nome del file.
-
Sm
significa stampare la data modificata per il file.
-
{} +
è sostituito da tutti i file trovati / i possibili in ogni chiamata a stat
Per ulteriori informazioni sulla comprensione dei comandi, consultare la pagina man per find
e stat
.