Como posso fazer com que o comando find mostre uma barra após os diretórios? Por exemplo, eu quero dir
aparecer como em dir/
vez de dir
. estou a usarfind . -print
19
Portably:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Se você deseja listar diretórios e arquivos separadamente (pode mesclar a saída classificando):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Com o GNU find, veja a resposta de Shawn J. Goff .
Se você estiver disposto a arriscar caracteres não imprimíveis serem mutilados, mesmo quando não estiver enviando para um terminal, consulte a resposta do ddeimeke .
No zsh: print -rl -- **/*(DM)
( D
para incluir arquivos de ponto, M
para adicionar um /
diretório posterior)
Isso usa o comando printf para formatar nomes de diretório e impressão padrão para o restante.
fonte
-printf
é específico para o GNU find.find
os argumentos posicionais permitem que ele produza resultados avançados como este. No entanto, observe que, sem os espaços ao redor da vírgula, ele não funcionará.find . -type d -printf '%p/\n' -or -print
Talvez
é uma opção também.
Em uma página de manual do Solaris:
fonte