A volte vedo il seguente comando:
find . -name * -exec ls -a {} \;
Mi è stato chiesto di eseguire questo.
Cosa {} \;
significa qui?
-name *
è peggio che ridondante. Poiché *
non è quotato, la shell lo espande nell'elenco dei nomi dei file nella cartella corrente, con spazi trattati in modo errato, portando a risultati imprevisti o un messaggio di errore. Come punto in più, find
ha molte funzioni, una delle quali è quella di elencare i file; questo evita di dover usare -exec
. Ad esempio, puoi usare find . -print
o find . -ls
. Infine, ci sono due modi per sfuggire il punto e virgola: o come avete fatto con la barra inversa, \;
o citando: ';'
. Usa quello con cui ti senti più a tuo agio.
-name *
è ridondante.