Comment puis-je trouver tous les fichiers dans un répertoire et des sous-répertoires et exécuter une commande dessus?
Par exemple,
find . -type f -name "*.txt"
trouve tous les fichiers txt et:
find . -type f -name "*.txt" | gedit
l'envoie à gedit, mais dans un fichier texte. Je veux que gedit ouvre tous les fichiers texte.
{}
remplace le nom du fichier actuel et le point-virgule termine simplement la commande. La barre oblique inverse et les guillemets environnants sont juste pour empêcher l'expansion du shell.find . -type f -name "*.txt" -print0 | xargs -0 gedit
la source
man find
ouman xargs
, puis/
recherchez un indicateur donné. La documentation est assez bonne, elle devrait répondre à vos questions.-print0
imprime un caractère NULL après chaque entrée,-0
s'attend à ce que les entrées soient séparées par un caractère NULL. C'est le moyen le plus sûr de gérer les noms délicats.