Dans mon répertoire ~ / docs, je veux "toucher" tous les fichiers se terminant par .txt
Comment puis-je faire ceci?
Avec find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
option correspondra à tous les txt
fichiers - exec
exécutera la commande touch
sur le nom de fichier, qui est substitué dans{}
\;
termine la commande et touch
sera appelé une fois pour chaque fichier trouvéRemarque:
\+
à la fin construit une seule commande à exécuter touch
sur tous ces fichiers à la fois. Ce n'est pas possible avec toutes les commandes, mais cela fonctionne touch
et vous permet d'économiser quelques appels si vous avez beaucoup de fichiers affectés.
{} \+
serait mieux ici ...touch
peut gérer de nombreux noms de fichiers sur sa ligne de commande, donc par exemple, avec 10 000 fichiers et{} \;
10 000 appels seront effectués verstouch
... L'utilisation{} \+
n'appelleratouch
qu'une seule fois (selon la mémoire disponible) ... Ici est un extrait de de trouver l' homme-page:-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
. Il y a plus de détails dans laman find
documentation.