97 votes

Comment exclure certains fichiers dans `ls` ?

Je voudrais courir ls et exclure certains fichiers de la sortie.

Lorsque je lance la commande suivante, j'obtiens tous les fichiers, chacun sur une ligne séparée :

$ ls -1
file1
file2
file3
temp

Je voudrais exécuter cette commande de manière à ce qu'elle s'affiche :

$ ls -1 <insert magic here> temp
file1
file2
file3

133voto

Sudheer Points 4768
ls -I <filename>

-I : Ignorer le nom de fichier, c'est-à-dire ne pas lister le fichier spécifié.

Pour ignorer plus d'un fichier, ajoutez un -I avant chaque nom de fichier.

ls -I file1 -I file2

Pour ignorer les fichiers par leur extension de nom, procédez comme suit, par exemple.

ls -I "*.jpg" -I "*.svg"

23voto

Jordan Ramirez Points 432

Pour moi, si j'utilise -I une fois, ça marche, mais si je l'utilise deux fois, ça ne marche pas. Par exemple :

  • Ça marche :

    ls -I *.csv
  • Mais :

    ls -I *.csv -I *.txt

    ne fonctionne pas et retourne .txt à la place.

--ignore a fait l'affaire pour moi. C'est ce dont j'avais besoin et ça a marché :

ls -lhrt --ignore="*.gz" --ignore="*.1"

Ce qui précède listera les fichiers de mon log dossier excluant les anciens journaux de sauvegarde.

15voto

trusktr Points 4518

Vous pouvez également utiliser :

ls --ignore={"*.jpg","*.png","*.svg"}

5voto

wellsaid Points 111

Je pense que cela produit le résultat que vous recherchez :

ls -1 !(temp)

Apparemment, vous avez besoin shopt -s extglob pour que cela fonctionne (je l'ai activé, donc je suppose qu'à un moment donné dans un passé lointain, je l'ai trouvé utile et l'ai activé).

Je suppose que vous pourriez aussi utiliser grep pour filtrer la sortie :

ls -1 | grep -v '^temp$'

L'utilisation d'un tuyau et de filtres offre beaucoup plus de flexibilité, et des compétences transférables à d'autres commandes/situations, bien que cela ne vous intéresse peut-être pas dans ce cas précis.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X