![Befehl zum Ausdrucken einer Ordnerliste von mehreren Laufwerken](https://rvso.com/image/977101/Befehl%20zum%20Ausdrucken%20einer%20Ordnerliste%20von%20mehreren%20Laufwerken.png)
Gibt es einen CLI-Befehl, um die Liste der auf verschiedenen Festplatten enthaltenen Ordner in alphabetischer Reihenfolge (aber in einer einzigen Textdatei oder Tabelle) auszudrucken?
Nehmen wir zum Beispiel an, ich habe diese Konfiguration:
/sda/Alfa/File 1
/sdb/Bravo/File 5
/sdb/Bravo/File 20
/sdc/Delta/File 14
/sdc/Delta/File 11
Was ich ausgeben möchte, ist eine TXT- oder Tabellenkalkulationsdatei, in der die Ordner in alphabetischer Reihenfolge aufgelistet sind, etwa so:
File 1
File 5
File 11
File 14
File 20
Kann ich dies über die Befehlszeilenschnittstelle tun?
Antwort1
Versuchen Sie es mitfind
mitsort
:
find /sda /sdb /sdc -type f -printf '%f\n' | sort
Zum Beispiel:
$ tree sd[a-c]
sda
└── Alfa
└── File 1
sdb
└── Bravo
├── File 20
└── File 5
sdc
└── Delta
├── File 11
└── File 14
$ find sd[a-c] -type f -printf '%f\n' | sort
File 1
File 11
File 14
File 20
File 5
Beachten Sie, dassDasist das, was man normalerweise mit alphabetischer Reihenfolge meint, genauer gesagt mit lexikografischer Reihenfolge. ( 5
Das Zeichen steht nicht vor 1
dem Zeichen, also 5
kann die Zeichenfolge nicht vor 14
der Zeichenfolge stehen – 05
wird es jedoch.)
Erläuterung:
find
ist ein Programm zum Finden von Dingen.
-type f
gibt an, dass wir normale Dateien und keine Verzeichnisse (oder andere spezielle Dateien) möchten.- Die übliche Ausgabe von
find
ist der Pfad der Datei, wir würden also erhaltensda/Alfa/File 1
, aber mit-printf '%f\n'
geben wir an,find
dass nur der Dateiname gedruckt werden soll.