Nella mia directory ~ / docs, voglio "toccare" tutti i file che terminano con .txt
Come posso fare questo?
Nella mia directory ~ / docs, voglio "toccare" tutti i file che terminano con .txt
Come posso fare questo?
Risposte:
Con find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
opzione corrisponderà a tutti i txt
file - exec
eseguirà il comando touch
sul nome del file, che è sostituito in{}
\;
termina il comando e touch
verrà chiamato una volta per ogni file trovatoNota:
\+
alla fine costruisce un singolo comando da eseguire touch
su tutti questi file contemporaneamente. Questo non è possibile con tutti i comandi, ma funziona touch
e ti salva alcune chiamate se hai molti file interessati.
{} \+
sarebbe meglio qui ... intouch
grado di gestire molti nomi di file sulla sua riga di comando, quindi ad esempio, con 10 mila file e{} \;
10 mila chiamate verranno fatte atouch
... L'utilizzo{} \+
chiameràtouch
solo una volta (a seconda della memoria disponibile) ... Qui è un estratto del ritrovamento dell'uomo-page:-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
. Ci sono più dettagli nellaman find
documentazione.