Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Actions prédéfinies

Travaillons un peu ! Avoir une liste de résultats de notre trouver La commande est utile, mais ce que nous voulons vraiment faire, c'est agir sur les éléments de la liste. Heureusement, trouver permet d'effectuer des actions en fonction des résultats de la recherche. Il existe un ensemble d'actions prédéfinies et plusieurs manières d'appliquer des actions définies par l'utilisateur. Examinons d'abord quelques-unes des actions prédéfinies :


Tableau 17-6 : Actions de recherche prédéfinies


Description de l'action

Description de l'action

-delete Supprime le fichier correspondant actuellement.


image

-ls Effectuer l'équivalent de ls-dils sur le fichier correspondant.

La sortie est envoyée à la sortie standard.


image

-print Affiche le chemin d'accès complet du fichier correspondant à la sortie standard. Il s'agit de l'action par défaut si aucune autre action n'est spécifiée.


image

-quit Quitter une fois qu'une correspondance a été établie.


image


Comme pour les tests, il y a beaucoup plus d'actions. Voir le trouver page de manuel pour plus de détails. Dans notre tout premier exemple, nous avons fait ceci :


trouver ~

trouver ~


qui a produit une liste de tous les fichiers et sous-répertoires contenus dans notre répertoire personnel. Il a produit une liste parce que le -impression action est implicite si aucune autre action n'est spécifiée. Ainsi, notre commande pourrait également être exprimée comme:



trouver ~ -imprimer

trouver ~ -imprimer


Nous pouvons utiliser trouver pour supprimer les fichiers qui répondent à certains critères. Par exemple, pour supprimer des fichiers qui


avoir l'extension de fichier « .BAK » (qui est souvent utilisée pour désigner les fichiers de sauvegarde), nous pourrions utiliser cette commande :



find ~ -type f -name '*.BAK' -delete

find ~ -type f -name '*.BAK' -delete


Dans cet exemple, chaque fichier du répertoire personnel de l'utilisateur (et ses sous-répertoires) est recherché pour les noms de fichiers se terminant par .POUBELLE. Lorsqu'ils sont trouvés, ils sont supprimés.


image

Mise en garde: Il va sans dire que vous devriez soyez extrêmement prudent lors de l'utilisation du -effacer action. Testez toujours la commande en premier en substituant le

-print action pour -delete pour confirmer les résultats de la recherche.


image

Avant de continuer, examinons à nouveau comment les opérateurs logiques affectent les actions. Considérez la commande suivante :



find ~ -type f -name '*.BAK' -print

find ~ -type f -name '*.BAK' -print


Comme nous l'avons vu, cette commande recherchera tous les fichiers normaux (-type f) dont le nom se termine par .BAK (-name '*.BAK') et affichera le chemin d'accès relatif de chaque fichier correspondant à la sortie standard (-print). Cependant, la raison pour laquelle la commande s'exécute comme elle le fait est déterminée par les relations logiques entre chacun des tests et des actions. N'oubliez pas qu'il existe, par défaut, une relation implicite -et entre chaque test et action. Nous pourrions également exprimer la commande de cette façon pour rendre les relations logiques plus faciles à voir :



find ~ -type f -and -name '*.BAK' -and -print

find ~ -type f -and -name '*.BAK' -and -print


Avec notre commande pleinement exprimée, regardons comment les opérateurs logiques affectent son exécution :


Le test/l'action n'est effectué que si...

Le test/l'action n'est effectué que si...

-impression -type f et -name '*.BAK' sont vrais


image

-nom '*.BAK' De type f est vrai


image

De type f Est toujours effectué, car il s'agit du premier test/action d'un

-et relation.


image


Puisque la relation logique entre les tests et les actions détermine lesquels d'entre eux sont effectués, nous pouvons voir que l'ordre des tests et des actions est important. Par exemple, si nous devions réorganiser les tests et les actions de sorte que le -impression l'action était la première, la commande se comporterait de manière très différente :



find ~ -print -and -type f -and -name '*.BAK'

find ~ -print -and -type f -and -name '*.BAK'


Cette version de la commande imprimera chaque fichier (le -impression l'action est toujours évaluée à true), puis testez le type de fichier et l'extension de fichier spécifiée.


Meilleur système d'exploitation Cloud Computing chez OnWorks :