L'option `-exec` dans la commande` Find` dans Unix vous permet d'exécuter une commande sur chaque fichier que la commande `Find` trouve. Voici une ventilation de son utilisation:
Objectif:
- `-EXEC` est utilisé pour chaîner une commande aux résultats d'une recherche« find ».
- Il vous permet d'effectuer des actions sur les fichiers trouvés, tels que:
- Modification des autorisations de fichier
- Suppression de fichiers
- Déplacer ou copier des fichiers
- Exécution des commandes de traitement sur les fichiers
Syntaxe de base:
`` `bash
Rechercher [path] [Options] -exec [Command] {} +
`` '
Explication:
* `trouver [chemin] [Options]`: Il s'agit de la commande `` Find` standard qui recherche des fichiers en fonction du chemin et des options spécifié.
* `-exec`: Cette option indique que «find» exécute la commande spécifiée sur chaque fichier qu'il trouve.
* `[Command]`: Il s'agit de la commande que vous souhaitez exécuter sur les fichiers trouvés.
* `{}`: Cet espace réservé représente le nom de fichier trouvé par «find».
* `+`: Cela indique que «finir» regrouper plusieurs fichiers et exécuter la commande à la fois. Ceci est plus efficace que l'exécution de la commande séparément pour chaque fichier.
Exemples:
1. Supprimer tous les fichiers .tmp dans le répertoire actuel:
`` `bash
trouver . -Name "* .tmp" -exec rm {} +
`` '
2. Modifiez les autorisations de tous les fichiers du répertoire / tmp en lecture seule:
`` `bash
find / tmp -type f -exec chmod 444 {} +
`` '
3. Compressez tous les fichiers .txt dans un répertoire:
`` `bash
find / path / to / répertoire -name "* .txt" -exec gzip {} +
`` '
Remarques importantes:
* `{}` et `+`: Il est crucial d'inclure à la fois `{}` et `+` dans la commande `-exec`.
* Efficacité: L'option «+» est fortement recommandée pour l'efficacité. Il regroupe les fichiers ensemble et exécute la commande sur eux en tant que lot, ce qui est beaucoup plus rapide que d'exécuter la commande sur chaque fichier individuellement.
* s'échapper: Soyez prudent avec des caractères spéciaux dans la commande ou les noms de fichiers. Vous devrez peut-être leur échapper en utilisant des barreaux.
* Alternative: L'option «-print0» et «xargs» est un autre moyen efficace de traiter plusieurs fichiers.
Faites-moi savoir si vous souhaitez explorer des exemples plus spécifiques ou avoir d'autres questions. Je suis là pour aider!
|