Як я можу шукати ім'я підстановки у всіх папках?


Відповіді:


40

Можна використовувати find. Якщо, наприклад, ви хотіли знайти всі файли та каталоги, які були abcdу імені файлу, ви можете запустити:

find . -name '*abcd*'

12

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опцію, щоб обійти це.


що робить покупок -s globstar ??
capybaralet

@ user2429920 gnu.org/software/bash/manual/… та натисніть на gnu.org/software/bash/manual/bash.html#The-Shopt-Builtin, потім прокрутіть вниз до globstar.
Жил "ТАК - перестань бути злим"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.