Befehl zum Ausdrucken einer Ordnerliste von mehreren Laufwerken

Befehl zum Ausdrucken einer Ordnerliste von mehreren Laufwerken

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 mitfindmitsort:

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. ( 5Das Zeichen steht nicht vor 1dem Zeichen, also 5kann die Zeichenfolge nicht vor 14der Zeichenfolge stehen – 05wird es jedoch.)


Erläuterung:

findist ein Programm zum Finden von Dingen.

  • -type fgibt an, dass wir normale Dateien und keine Verzeichnisse (oder andere spezielle Dateien) möchten.
  • Die übliche Ausgabe von findist der Pfad der Datei, wir würden also erhalten sda/Alfa/File 1, aber mit -printf '%f\n'geben wir an, finddass nur der Dateiname gedruckt werden soll.

verwandte Informationen