[bash] find + basename?
-
Hallo,
ich möchte alle Dateien unterhalb einer Verzeichnisebene auflisten, es sollen aber nur die Dateinamen ohne Pfade angezeigt werden. Ersteres macht find . -type f, letzteres basename.
Aber wie übergebe ich die find-Ergebnisse an basename?Alternative Lösungsvorschläge für das ursprüngliche Problem sind natürlich auch willkommen.
-
$ find -type f -exec basename {} \;
-
Das war's, danke!
-
Das würde hier natürlich auch gehen:
find . -type f | while read i ; do basename "$i" ; done
Alexander
-
Kann man das auch irgendwie alphabetisch sortiert ausgeben? Evtl auch sortiert nach Symlink, Script, Programm etc.?
-
-
find /bin -type f | while read i ; do basename "$i"; sort ; done
ja das geht, allerdings haut der mir den ganzen Pfad mit raus. Gibts 'ne Möglichkeit nur dateinamen auszugeben? Also sowas wie einen Replace-Befehl der mir das
/bin/
aus
[b]/bin/[/b]bzip2
weg radiert, so dass ich nur die dateinamen dort stehen habe.
-
dixidix schrieb:
find /bin -type f | while read i ; do basename "$i"; sort ; done
ja das geht, allerdings haut der mir den ganzen Pfad mit raus. Gibts 'ne Möglichkeit nur dateinamen auszugeben?
äh ja, basename
Also sowas wie einen Replace-Befehl der mir das
/bin/
aus
[b]/bin/[/b]bzip2
weg radiert, so dass ich nur die dateinamen dort stehen habe.
sed "s/\/bin\///g"