Wie kann ich dafür sorgen, dass der Befehl find nach Verzeichnissen einen Schrägstrich anzeigt? Zum Beispiel möchte ich dir
als dir/
statt zeigen dir
. Ich benutzefind . -print
19
Tragbar:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Wenn Sie Verzeichnisse und Dateien separat auflisten möchten (Sie können die Ausgabe durch Sortieren zusammenführen):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Siehe Shawn J. Goffs Antwort zu GNU find .
Wenn Sie das Risiko eingehen möchten, dass nicht druckbare Zeichen beschädigt werden, auch wenn sie nicht auf einem Terminal ausgegeben werden , lesen Sie die Antwort von ddeimeke .
In zsh: print -rl -- **/*(DM)
( D
um Punktdateien einzuschließen, M
um ein /
After-Verzeichnis hinzuzufügen )
Dies verwendet den Befehl printf, um Verzeichnisnamen und den Standarddruck für den Rest zu formatieren.
quelle
-printf
spezifisch für GNU find ist.find
die Positionsargumente es ermöglichen, erweiterte Ausgaben wie diese zu erstellen. Beachten Sie jedoch, dass dies ohne die Leerzeichen um das Komma nicht funktioniert.find . -type d -printf '%p/\n' -or -print
Vielleicht
ist auch eine Option.
Aus einer Solaris-Manpage:
quelle