Як я можу шукати ім'я підстановки у всіх папках? Що було б еквівалентом команди DOS: dir *pattern* /s
в * nix?
Як я можу шукати ім'я підстановки у всіх папках? Що було б еквівалентом команди DOS: dir *pattern* /s
в * nix?
Відповіді:
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*
Яш:
set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*
tcsh:
set globstar
ls -ld -- **/*abcd*
риба:
ls -ld -- **abcd*
(Остерігайтеся деяких з цих оболонок будуть слідувати по символічним посиланням під час спуску по дереву каталогів, деякі з тих , що не подобається zsh
, yash
або tcsh
є , ***/*abcd*
щоб зробити це).
Портативний (за винятком дуже старих систем; OpenBSD зайняв багато часу, але нарешті підтримує exec … +
з 5.1):
find . -name '*abcd*' -exec ls -ld {} +
Не POSIX, але працює на * BSD, Linux, Cygwin, BusyBox:
find . -name '*abcd*' -print0 | xargs -0 ls -ld
Зауважте, що за винятком деяких BSD, якщо не знайдеться відповідний файл, ls -ld
запускатимуться без аргументів, так буде відображено список .
. З деякими xargs
реалізаціями ви можете використовувати -r
опцію, щоб обійти це.
globstar
.