web-dev-qa-db-fra.com

Quel est l'équivalent Linux de DOS "Dir / S / B FileName"?

Énumérez tous les fichiers/DIRS dans ou sous le répertoire actuel correspondant à "Nom de fichier".

17
mackenir

L'équivalent direct est

find . -iname <filename>

qui répertoriera tous les fichiers et les répertoires appelés <filename> Dans le répertoire actuel et les sous-répertoires, ignorant l'affaire.

Si votre version de recherche ne supporte pas -iname, vous pouvez utiliser -name plutôt. Notez que Contrairement à -iname, -name est sensible à la casse.

Si vous souhaitez seulement répertorier les fichiers appelés <filename>, et non les répertoires, ajoutez -type f

find . -iname <filename> -type f

Si vous souhaitez utiliser des caractères génériques, vous devez mettre des citations autour de lui, par exemple.

find . -iname "*.txt" -type f

sinon, la coquille l'étendra.

Comme d'autres l'ont souligné, vous pouvez également faire:

find . | grep "\.txt$"

grep _ Impression des lignes basées sur des expressions régulières, qui sont plus puissantes que des caractères génériques, mais ont une syntaxe différente.

Voir man find et man grep pour plus de détails.

28
Mikel

Certaines coquilles permettent ls **/filename, ce qui est assez pratique.

8
Shawn J. Goff