Linux'ta xargs Komutu Nasıl Kullanılır

Comment utiliser la commande xargs sous Linux

⌛ Reading Time: 5 minutes

Pour certains des utilisateurs les plus expérimentés, nous cherchons toujours à trouver de nouvelles façons de travailler plus intelligemment et pas plus dur au terminal. xargs est une commande utile qui agit comme un pont entre deux commandes, lisant la sortie de l’une et exécutant l’autre avec les éléments lus. La commande est le plus souvent utilisée dans les scénarios où un utilisateur recherche un modèle, supprime et renomme des fichiers, etc. Ici, nous vous montrons comment utiliser le xargs commande à votre avantage.

Qu’est-ce que xargs ?

Dans sa forme de base, xargs lit les informations de l’entrée standard (ou STDIN) et exécute une commande une ou plusieurs fois avec les éléments lus. Il existe de nombreuses démonstrations simples, mais en voici une qui montre ce que je veux dire.

Avoir xargs exécuter le ls sur mon dossier Documents, j’exécuterais la commande suivante :

Le personnage de la pipe | canalise tout ce qui précède en tant que STDIN pour xargs.

Tu peux voir ça xargs lit mon dossier Documents sans problème. Ceci n’est qu’un exemple des capacités de la xargs commander.

Tandis que le xargs La commande peut être utilisée dans diverses opérations de ligne de commande, elle est très pratique lorsqu’elle est utilisée avec le find commander. Dans cet article, nous discutons de quelques exemples utiles pour comprendre comment xargs et find peuvent être utilisés ensemble.

Opérations impliquant plusieurs fichiers

Supposons que vous souhaitiez copier le contenu de « ref.txt » dans tous les fichiers texte présents dans un répertoire. Bien que la tâche puisse nécessiter l’exécution de plusieurs commandes, le xargs commande, avec le find commande, le rend simple. J’ai quelques répertoires de test. L’un contient “test0.txt”, qui contient du texte, et l’autre répertoire contient 10 autres fichiers de test sans texte. Si je voulais prendre le contenu de test0.txt et copiez cela dans le reste des fichiers texte dans les autres répertoires, j’exécuterais la commande suivante :

Xargs Trouver Cp

Pour comprendre la commande ci-dessus, divisons-la en deux parties.

La première partie est find ./test-dir1/ -name "*.txt" , qui recherche tous les fichiers .txt présents dans le répertoire « test-dir1 ». Vous pouvez spécifier n’importe quel répertoire ici.

La seconde partie, xargs -n1 cp test.txt, récupérera la sortie de la première commande (les noms de fichiers résultants) et la transmettra au cp (copier) commande un par un. Notez que le -n L’option est cruciale ici, car elle indique xargs d’utiliser un argument par exécution.

Lorsqu’elles sont combinées, la commande complète copiera le contenu de “test0.txt” dans tous les fichiers .txt du répertoire.

Preuve Xargs Cp

Opérations impliquant un grand nombre d’arguments

L’un des principaux avantages de l’utilisation xargs est sa capacité à gérer un grand nombre d’arguments. Par exemple, lors de la suppression d’un grand nombre de fichiers en une seule fois, le rm la commande échouait parfois avec un “Liste d’arguments trop longue” Erreur. C’est parce qu’il ne pouvait pas simplement gérer une si longue liste d’arguments. C’est généralement le cas lorsque vous avez trop de fichiers dans le dossier que vous souhaitez supprimer.

Disons que vous avez 75 PDF et que vous obtenez une erreur en essayant de les supprimer.

Xargs PDF

Cela peut être facilement corrigé avec xargs. Pour supprimer tous ces fichiers, utilisez la commande suivante :

Xargs Rm F

Opérations impliquant la recherche de modèles

Les développeurs de logiciels ainsi que les administrateurs système effectuent de nombreuses recherches de modèles tout en travaillant sur la ligne de commande. Par exemple, un développeur peut vouloir jeter un coup d’œil rapide aux fichiers de projet qui modifient une variable particulière, ou un administrateur système peut vouloir voir les fichiers qui utilisent un paramètre de configuration système particulier. Dans ces scénarios, xargs, avec find et grep, vous facilite les choses.

Par exemple, pour rechercher tous les fichiers « .txt » contenant la chaîne « maketecheasier », exécutez la commande suivante :

Voici la sortie de la commande produite sur mon système.

Xargs Grep Mte

Opérations Couper/Copier

Xargs, avec le find commande, peut également être utilisé pour copier ou déplacer un ensemble de fichiers d’un répertoire à un autre. Par exemple, pour déplacer tous les fichiers texte datant de plus de 10 minutes du répertoire actuel vers le répertoire précédent, utilisez la commande suivante :

Le -I L’option de ligne de commande est utilisée par le xargs commande pour définir une chaîne de remplacement qui est remplacée par des noms lus à partir de la sortie du find commander. Ici, la chaîne de remplacement est {}, mais ça peut être n’importe quoi. Par exemple, vous pouvez utiliser “file” comme chaîne de remplacement.

Comment dire à xargs quand arrêter

Supposons que vous vouliez lister les détails de tous les fichiers .txt présents dans le répertoire courant. Comme déjà expliqué, cela peut être facilement fait en utilisant la commande suivante :

Mais il y a un problème : le xargs la commande exécutera le ls commande même si le find la commande ne trouve aucun fichier .txt. Ce qui suit est un exemple.

Xargs Trouver Txt Pngs

Vous pouvez donc voir qu’il n’y a pas de fichiers .txt dans le répertoire, mais cela ne s’est pas arrêté xargs de l’exécution du ls commander. Pour modifier ce comportement, utilisez le -r option de ligne de commande :

Conclusion

Bien que je me sois concentré ici sur l’utilisation xargs avec find, il peut également être utilisé avec de nombreuses autres commandes. Si vous avez plusieurs commandes complexes à exécuter, xargs est un outil très utile.

Si vous avez apprécié notre article sur la façon d’utiliser le xargs sous Linux, assurez-vous de consulter certains de nos autres contenus Linux, comme nos guides sur la correction de l’erreur « pas d’espace restant sur l’appareil » ou sur l’accélération d’Ubuntu.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.