Maison  >  Article  >  Opération et maintenance  >  Explication détaillée de l'utilisation de la commande find sous Linux

Explication détaillée de l'utilisation de la commande find sous Linux

巴扎黑
巴扎黑original
2017-09-04 14:00:003270parcourir

Sous Windows, vous pouvez rechercher des fichiers dans certains chemins, ou vous pouvez définir de ne pas rechercher de fichiers dans certains chemins. Utilisons la commande find sous Linux combinée avec le paramètre -path -prune pour voir comment l'implémenter dans. Linux. Cette fonctionnalité.

Supposons que vous recherchiez un fichier dans le répertoire actuel et qu'il existe de nombreux fichiers et répertoires (répertoires à plusieurs niveaux) dans le répertoire actuel, notamment dir0, dir1, dir2... et dir00, dir01. ..dir10, dir11 ...et autres sous-répertoires.

1. Recherchez tous les fichiers de suffixe txt dans le répertoire actuel

find ./ -name *.txt

2 Dans le répertoire dir0 et les sous-répertoires du répertoire actuel Find. fichier de suffixe txt

find ./ -path './dir0*' -name *.txt

3. Dans le sous-répertoire dir00 et ses sous-répertoires sous le répertoire dir0 dans le répertoire actuel Find txt. fichier de suffixe

find ./ -path '*dir00*' -name *.txt

4. Recherchez le fichier de suffixe txt

find . / -path './dir0*' -a -prune -o -name *.txt -print

Explication : -a doit être l'abréviation de et, ce qui signifie opérateur logique' ou '(&&); -o doit être l'abréviation de or, ce qui signifie l'opérateur logique 'et' (||), -not signifie non

La signification de la ligne de commande est : si le répertoire dir0 existe (c'est-à-dire celui de gauche). côté de -a est vrai), puis trouvez la valeur de -prune, -prune renvoie vrai, l'expression logique 'ET' est vraie (c'est-à-dire, -path './dir0*' -a -prune est vrai), le La commande find sera en plus Rechercher le fichier de suffixe txt dans un répertoire autre que ce répertoire et l'imprimer si le répertoire dir0 n'existe pas (c'est-à-dire que le côté gauche de -a est faux), -prune ne le sera pas ; évalué et que l'expression logique « ET » est fausse, elle sera alors recherchée dans le répertoire actuel Tous les fichiers de suffixe txt.

5. Recherchez les fichiers de suffixe txt dans les répertoires autres que dir0, dir1 et les sous-répertoires

find ./ /( -path './dir0*' -o -path './ dir1*' /) -a -prune -o -name *.txt -print

Remarque : les parenthèses () indiquent la combinaison d'expressions. Autrement dit, il demande au shell de ne pas faire d'interprétations spéciales des caractères suivants, mais de laisser à la commande find le soin d'interpréter leur signification. Étant donné que les parenthèses ne peuvent pas être utilisées directement sur la ligne de commande, vous devez utiliser la barre oblique inverse « / » pour les échapper (c'est-à-dire que le caractère d'échappement « / » permet à la ligne de commande de reconnaître les parenthèses). Notez également que '/(', '/)' nécessite des espaces des deux côtés.

6. Recherchez les fichiers de suffixe txt dans dir0, dir1 et les sous-répertoires

find ./ /( -path './dir0*' -o -path './dir1*' / ) - a -name *.txt -print

+1. Recherchez les fichiers de suffixe txt dans tous les répertoires nommés dir_general

find ./ -path '*/dir_general/*' -name *.txt - imprimer

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn