find . -type f -print
drucktSo entfernen Sie führende "./" in Unix "finden"?
./file1
./file2
./file3
Jede Art und Weise es
file1
file2
file3
drucken zu machen?
find . -type f -print
drucktSo entfernen Sie führende "./" in Unix "finden"?
./file1
./file2
./file3
Jede Art und Weise es
file1
file2
file3
drucken zu machen?
Wenn sie nur im aktuellen Verzeichnis sind
find * -type f -print
Ist das, was Sie wollen?
Verwendung sed
find . | sed "s|^\./||"
Dies ist meine bevorzugte Lösung; Es ist POSIX-kompatibel (funktioniert praktisch überall, sogar in eingebetteten Systemen), sehr kurz und es ist unwahrscheinlich, dass es zu einem unerwarteten Verhalten kommt. Dies sollte die akzeptierte Antwort sein. –
Wie würde das mit 'find -exec' kombiniert werden? – PaulrBear
'find -exec sh -c" echo {} | sed 's |^\ ./ ||' "\;' oder 'find -exec sh -c" sed 's |^\ ./ | | ' <<< '{}' "\;' – xenithorb
kann es kürzer sein
find * -type f
Besser mit '2>/dev/null', um den Fehler zu ignorieren, der gemeldet wird, wenn der Befehl in einem leeren Verzeichnis ausgeführt wird. – neevek
finden nur normale Dateien im aktuellen Verzeichnis auf, und drucken Sie sie ohne "./" prefix:
find -type f -printf '%P\n'
Aus Mann finden, Beschreibung von -printf Format:
% P Dateiname mit dem Namen des Befehlszeilenarguments, unter dem es gefunden wurde.
+1 Gute Lösung, wenn Ihre Version von 'find'' -printf' unterstützt (nicht alle). –
Wie Todd sagte, aber genauer: es ist nicht POSIX 7. –
Unterstützt oder nicht, es ist definitiv sicherer als die angenommene Antwort. –
Ich wusste, dass es mit sed getan werden könnte, aber das ist eine viel bessere Lösung. Vielen Dank! – breadjesus
nett, nie darüber nachgedacht –
Das wird Dateien mit Namen verpassen, die mit einem Punkt beginnen. – Sean