74 votes

Comment faire pour que ls n'affiche que les fichiers ?

Je me dis qu'il doit y avoir un moyen de faire en sorte que ls n'affiche que les non-répertoires, mais la page de manuel ne le rend pas évident

95voto

thomasrutter Points 33791
ls -p | grep -v /

Utilisation de ls -p dit à ls pour ajouter un slash aux entrées qui sont un répertoire, et en utilisant grep -v / dit à grep pour ne retourner que les lignes no contenant une barre oblique.

25voto

theabhinavdas Points 510

Vous pouvez essayer ceci :

find . -maxdepth 1 -not -type d

Et le faire correspondre à un alias spécial.

Mais si vous tenez vraiment à utiliser l'option ls ici :

ls -p | egrep -v /$

12voto

Alternativement :

ls -lAh | grep -v '^d'

Cette méthode énumère dans

  • -l Format de la liste longue
  • -A Affiche presque tous les fichiers (montre les fichiers cachés mais pas les fichiers cachés). . y .. )
  • -h Taille des fichiers lisible par l'homme

alors que grep

  • -v Ne pas montrer les enregistrements correspondants
  • Regular expression filtre ^d - Ceux qui commencent par la lettre d (pour répertoire), c'est-à-dire drwxrwxr-x <some file details> <foldername>

Si vous ne voulez pas taper à chaque fois, vous pouvez le transformer en un alias pour votre profil bash/Shell.

2voto

Levi Uzodike Points 21

J'ai vu dans votre( @thinksinbinary ) commentaire sur la réponse de @thomasrutter , que vous vouliez pouvoir les imprimer en ordre inverse et en colonnes. Vous avez probablement déjà trouvé la solution ou êtes passé à autre chose, mais la voici :

ls -pr | grep -v / | column
  • -p ajoute la barre oblique ('/') aux noms des répertoires
  • -r inverse l'ordre de sortie
  • -v permet à grep de faire une recherche inverse pour tout imprimer sauf les répertoires ( tout ce qui n'a pas le '/' que -p y a mis )
  • " colonne le met en colonnes" - Capitaine Evidence

1voto

BarathVutukuri Points 136
ls -F | grep -v /

La commande ci-dessus affiche les fichiers, mais elle inclut les liens symboliques, les pipes, etc. Si vous voulez les éliminer aussi, vous pouvez utiliser l'un des drapeaux mentionnés ci-dessous.

ls -F ajoute les symboles aux noms de fichiers. Ces symboles indiquent des informations utiles sur les fichiers.

La commande ci-dessus n'affiche que les fichiers.

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