Pas sûr ls, mais vous pouvez facilement le faire avec la filecommande: file /directory/containing/the/files -maxdepth 1 -not -type d.
Henning Kockerbeck
1
Une autre façon serait de filtrer la sortie de lsthrough grep, quelque chose comme ls -1F /directory/containing/the/files | grep -vE /$. Mais sachez que l' analyse de la sortie de ls peut être délicate .
En utilisant ls -ptells lspour ajouter une barre oblique à des entrées qui sont un répertoire, et à l' aide grep -v /dit grepde retourner seulement les lignes ne contenant une barre oblique.
J'ai vérifié celle-ci parce que c'est ma réponse préférée (alors que je les ai toutes votées), mais j'essaie maintenant de trouver un moyen de la mettre en colonnes et d'inverser l'ordre de sortie ...
thinksinbinary
"Vous pouvez utiliser 1 commutateur pour la liste à colonne unique" désolé, j'ai essayé de comprendre ce que vous vouliez dire par là, j'apprécierais et donnerais un exemple / une explication si vous le souhaitez, je ne sais ce qu'est un commutateur en ce qui concerne la programmation C
thinksinbinary
@sdkks Vous n'avez pas besoin du 1commutateur lorsque vous canalisez la sortie car il sera par défaut sur une seule colonne dans cette situation. Si c'est ce que vous vouliez dire.
thomasrutter
@thinksinbinary ne sait pas comment le rendre multi-colonne, mais vous pouvez rechercher ou poser votre propre question distincte et quelqu'un saura.
thomasrutter
7
Vous pouvez essayer ceci:
find . -maxdepth 1 -not -type d
Et mappez cela à un alias spécial.
Mais si vous souhaitez vraiment utiliser la lscommande, voici:
J'ai vu dans votre commentaire (@thinksinbinary) sur la réponse de @thomasrutter, que vous vouliez pouvoir les imprimer en ordre inverse et en colonnes. Vous l'avez probablement déjà compris ou avancé, mais le voici:
ls -pr | grep -v / | column
-p ajoute la barre oblique ('/') aux noms de répertoire
-r inverse l'ordre de sortie
-v permet à grep de faire une recherche inverse pour tout imprimer sauf les répertoires ( tout ce qui ne contient pas le '/' que -p y place )
Je pense que c'est cool que sur le forum Ubuntu les gens continuent de commenter et de lire vos messages après une longue période. Je voulais revenir sur Linux pour apprendre les systèmes d'assemblage et d'exploitation, car le faire sur Windows est beaucoup plus difficile. Merci!
thinksinbinary
0
ls -F | grep -v /
La commande ci-dessus affiche les fichiers, mais elle inclut des liens symboliques, des tuyaux, etc. Si vous souhaitez également les éliminer, vous pouvez utiliser l'un des indicateurs mentionnés ci-dessous.
ls -Fajoute des symboles aux noms de fichiers. Ces symboles affichent des informations utiles sur les fichiers.
ls
, mais vous pouvez facilement le faire avec lafile
commande:file /directory/containing/the/files -maxdepth 1 -not -type d
.ls
throughgrep
, quelque chose commels -1F /directory/containing/the/files | grep -vE /$
. Mais sachez que l' analyse de la sortie de ls peut être délicate .Réponses:
En utilisant
ls -p
tellsls
pour ajouter une barre oblique à des entrées qui sont un répertoire, et à l' aidegrep -v /
ditgrep
de retourner seulement les lignes ne contenant une barre oblique.la source
1
commutateur lorsque vous canalisez la sortie car il sera par défaut sur une seule colonne dans cette situation. Si c'est ce que vous vouliez dire.Vous pouvez essayer ceci:
find . -maxdepth 1 -not -type d
Et mappez cela à un alias spécial.
Mais si vous souhaitez vraiment utiliser la
ls
commande, voici:ls -p | egrep -v /$
la source
Alternativement:
Cette méthode répertorie dans
-l
Format de longue liste-A
Affiche presque tous (affiche les fichiers cachés mais ne les affiche pas.
et..
)-h
Tailles de fichiers lisibles par l'hommetandis que grep
-v
Ne pas afficher les enregistrements correspondantsRegular expression
filtre^d
- Ceux-ci commencent par la lettre d (pour le répertoire) iedrwxrwxr-x <some file details> <foldername>
Si vous ne voulez pas taper à chaque fois, vous pouvez en faire un alias pour votre profil bash / shell.
la source
J'ai vu dans votre commentaire (@thinksinbinary) sur la réponse de @thomasrutter, que vous vouliez pouvoir les imprimer en ordre inverse et en colonnes. Vous l'avez probablement déjà compris ou avancé, mais le voici:
la source
La commande ci-dessus affiche les fichiers, mais elle inclut des liens symboliques, des tuyaux, etc. Si vous souhaitez également les éliminer, vous pouvez utiliser l'un des indicateurs mentionnés ci-dessous.
ls -F
ajoute des symboles aux noms de fichiers. Ces symboles affichent des informations utiles sur les fichiers.@
signifie lien symbolique (ou que le fichier a des attributs étendus ).*
signifie exécutable .=
signifie prise .|
signifie pipe nommée .>
signifie porte ./
signifie répertoire .La commande ci-dessus affiche uniquement les fichiers.
la source