Wie erhalte ich eine Linux-Verzeichnisliste für Dateien, die mit einem bestimmten Buchstaben beginnen und nicht in Unterverzeichnisse absteigen?


17

Angenommen, Sie befinden sich in einem Verzeichnis, das viele Dateien und viele Unterverzeichnisse enthält.

Sie möchten eine Verzeichnisliste aller Dateien erhalten, die mit dem Buchstaben "d" beginnen. Du tippst

ls d*

und was Sie zurückerhalten, sind hauptsächlich Dateien in Unterverzeichnissen (insbesondere Dateien in Unterverzeichnissen, die mit "d" beginnen).

Wie listen Sie nur die Dateien und Verzeichnisnamen in Ihrem aktuellen Verzeichnis auf?

Antworten:


31

Ah, ich habe es gerade in der 6. Lesung der Manpage gefunden. Es ist der nicht so vernünftig benannte "Verzeichnis" -Parameter

ls -d d* 

6
Sie haben nur 29 Sekunden gebraucht, um die Manpage erneut zu lesen und diese Antwort aufzuschreiben? Das geht schnell :-)
balpha

1
Außerdem zeigt ls -dd * / nur die Verzeichnisse an.
INNAM

6
balpha - Ich habe es entdeckt, bevor ich die Frage abgeschickt habe, und dann festgestellt, dass ich, wenn ich so lange brauchte, um das herauszufinden, einem zukünftigen Sucher genauso gut helfen könnte, das q und ein hier zu posten.
dggoldst

3
Meinetwegen; daran ist nichts auszusetzen.
Balpha

1
Und doch, CppLearner, funktioniert es tatsächlich. Versuch es.
Dggoldst

10

Ich glaube eine andere interessante Lösung zu sein,

ls | grep ^d

Bietet die Flexibilität regulärer Ausdrücke.


3
Und die Komplexität regulärer Ausdrücke! ;-)
Chris Nava

1
Das ist eine interessante Lösung, und ich mag die Idee, reguläre Ausdrücke zu verwenden, wenn Sie zusätzliche Parameter zu ls hinzufügen, wird sie jedoch brechen. ZB "ls -l | grep ^ d"
dggoldst

Richtig, aber nicht alle Parameter. ls -a | grep "^ \." würde alle "versteckten" Dateien drucken.
Kuer,

andere ls flagsfunktionieren bei diesem Ansatz nicht. zB ls -ltr | grep ^dfunktioniert nicht. während die in @dggoldst vorgeschlagene Antwort dies tut.
Hitesh Israni

3

finden . -maxtiefe 1 -name d * -Typ f

Okay, hier zu finden ist ein bisschen übertrieben. Nur ein bisschen.


1
Aber es hat mir geholfen , eine Liste aller direkten Verzeichnisse von einem bestimmten Benutzer: find /home/ -maxdepth 1 -type d -user www-data. Also danke und +1
Cyril N.

1

ls -ld: Es wird die Liste der Verzeichnisse angezeigt, ohne in Unterverzeichnisse abzusteigen.

Beispiel:

ls -ld Cust*
Dieser Befehl enthält eine Liste der Dateien und Verzeichnisse, die mit beginnen Cust.


1
Dies entspricht im Wesentlichen der von der Fünfjährigen akzeptierten Antwort.
Scott
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.