Comment faire pour que la commande find affiche une barre oblique après les répertoires? Par exemple, je veux dir
apparaître comme dir/
au lieu de dir
. j'utilisefind . -print
19
Portablement:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Si vous souhaitez répertorier les répertoires et les fichiers séparément (vous pouvez fusionner la sortie en triant):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Avec GNU find, voir la réponse de Shawn J. Goff .
Si vous êtes prêt à risquer que des caractères non imprimables soient mutilés même lorsqu'ils ne sont pas sortis sur un terminal, consultez la réponse de ddeimeke .
Dans zsh: print -rl -- **/*(DM)
( D
pour inclure les fichiers dot, M
pour ajouter un /
répertoire after)
Cela utilise la commande printf pour formater les noms de répertoire et l'impression standard pour le reste.
la source
-printf
est spécifique à GNU find.find
les arguments positionnels lui permettent de faire une sortie avancée comme celle-ci. Cependant, notez que sans les espaces autour de la virgule, cela ne fonctionnera pas.find . -type d -printf '%p/\n' -or -print
Peut être
est également une option.
À partir d'une page de manuel Solaris:
la source