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
Réponses
Trop de publicités?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-à-diredrwxrwxr-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.
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
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.
-
@
signifie lien symbolique (ou que le fichier a des attributs étendus ). -
*
signifie exécutable . -
=
signifie prise de courant . -
|
signifie tuyau nommé . -
>
signifie porte . -
/
signifie répertoire .ls -F | grep -Ev '/|@|*|=|>||'
La commande ci-dessus n'affiche que les fichiers.
- Réponses précédentes
- Plus de réponses