Est-il possible d'ajouter une exception avec un «ls -l *»

0

Est-il possible de faire par exemple: ls -l *qui impriment le contenu de tout un répertoire. Et ajoutez une exception, par exemple, test.cpp pour imprimer tous les fichiers sauf le test.cpp.

kl94
la source
1
--hide ou --ignore de la page de manuel devrait fonctionner
Lamar B

Réponses:

3

Vous pouvez le faire avec un glob si vous avez extglobactivé. Vous pouvez l'activer avec:

shopt -s extglob

Et vous pouvez l'utiliser comme:

ls -l !(test.cpp)

et il peut être utilisé d'autres manières aussi:

ls -l !(*.jpg) # list all files that don't have .jpg extensions

Puisqu'il s'agit d'un glob shell, il peut également être utilisé avec d'autres commandes. Un effet secondaire, cependant, est que cela entraîne la liste explicite des sous-répertoires, ce qui signifie qu'ils lsles listeraient également. Mais, cela peut facilement être manipulé avec:

ls -ld !(test.cpp)
Erreur fatale
la source
2

La manière classique (naïve?) De faire cela serait

  ls -l * | grep -v test.cpp

Cependant, comme Lamar a commenté, GNU lsa des options pour ignorer certains noms de fichiers

  ls -l -I test.cpp *

Remarque ls -l *répertorie les fichiers du répertoire en cours et les fichiers des sous-répertoires du premier niveau . Vous avez peut-être voulu dire ls -lsans le*

RedGrittyBrick
la source
Ou peut-être ls -ld *.
Daniel Beck