Jak sprawić, by polecenie find wyświetlało ukośnik po katalogach? Na przykład chcę dir
pokazać się jako dir/
zamiast dir
. używamfind . -print
19
Przenośny:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Jeśli chcesz wyświetlić listę katalogów i plików osobno (możesz scalić dane wyjściowe przez sortowanie):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Z GNU find zobacz odpowiedź Shawna J. Goffa .
Jeśli zaryzykujesz zniekształceniem znaków niedrukowalnych, nawet jeśli nie są one wysyłane do terminala, zobacz odpowiedź ddeimeke .
W zsh: print -rl -- **/*(DM)
( D
aby dołączyć pliki kropek, M
aby dodać /
katalogi po)
Używa polecenia printf do formatowania nazw katalogów i drukowania standardowego dla reszty.
źródło
-printf
jest specyficzna dla GNU find.find
argumenty pozycyjne pozwalają na tworzenie zaawansowanych wyników w ten sposób. Pamiętaj jednak, że bez spacji wokół przecinka nie będzie działać.find . -type d -printf '%p/\n' -or -print
Może
jest również opcją.
Ze strony podręcznika Solaris:
źródło