Come posso cercare un nome jolly in tutte le sottocartelle? Quale sarebbe l'equivalente del comando DOS: dir *pattern* /s
in * nix?
Come posso cercare un nome jolly in tutte le sottocartelle? Quale sarebbe l'equivalente del comando DOS: dir *pattern* /s
in * nix?
Risposte:
zsh:
ls -ld -- **/*abcd*
ksh93:
set -o globstar # put this line in your ~/.kshrc
ls -ld -- **/*abcd*
Bash ≥4:
shopt -s globstar # put this line in your ~/.bashrc
ls -ld -- **/*abcd*
Yash:
set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*
tcsh:
set globstar
ls -ld -- **/*abcd*
pesce:
ls -ld -- **abcd*
(attenzione alcune di queste conchiglie seguiranno i collegamenti simbolici durante la discesa l'albero delle directory, alcuni di quelli che non ti piace zsh
, yash
o tcsh
avere ***/*abcd*
per farlo).
Portatile (tranne che per sistemi molto vecchi; OpenBSD ha impiegato molto tempo ma alla fine supporta exec … +
dal 5.1):
find . -name '*abcd*' -exec ls -ld {} +
Non POSIX ma funziona su * BSD, Linux, Cygwin, BusyBox:
find . -name '*abcd*' -print0 | xargs -0 ls -ld
Si noti che, tranne in alcuni BSD, se non viene trovato alcun file corrispondente, ls -ld
verrà eseguito senza argomenti, quindi verrà elencato .
. Con alcune xargs
implementazioni, è possibile utilizzare l' -r
opzione per aggirare questo.
globstar
.