Linux знайде папку всередині папок


19

Я намагаюся знайти каталог з іменем 480debugerrorвкладеного під дочірніми каталогами. Я не знаю точного шляху, або навіть якщо у мене є точний написання каталогу, який я хочу знайти.

Чи є команда Linux для пошуку каталогів із заданим префіксом або суфіксом, наприклад, каталоги з назвою "налагодження" або "помилка налагодження", з якимсь невідомим префіксом або суфіксом?


2
Ви можете спробувати locate(знаходить файли) або find(знаходить файли).
miku

знайти -тип f -name * ummy ... але не отримати

3
Вам потрібно -тип d . fшукає файли
thkala

Відповіді:


16

find це те, що вам потрібно:

$ find -type d -name '*debugerror*'

або

$ find -type d -name '480debugerror'

якщо ви впевнені в назві папки.



1
locate -i "480debugerror"

перевірить базу даних, у якій перераховані всі файли, проіндексовані на вашому ПК. У мене часто є такі сценарії, тому я роблю такі пошуки:

locate -i "debug" | grep -i "log"

який знаходить усі файли, які мають на своєму шляху (незалежно від регістру [це означає -і означає]) "налагодження" та "журнал" (якщо ви цього не знаєте, | grepзасоби пошуку в результатах, що знаходять)

Перевагою використання locate over find є те, що locate дасть результат набагато швидше (оскільки це лише перевірка бази даних), але якщо файл / папка не індексується, він нічого не знайде. (для оновлення бази даних, яку ви можете використовувати sudo updatedb)


Тільки якщо ви slocateвстановили. Деякі виробничі умови не :-(
Zsolt Botykai

Щоправда, але якщо варіант, я б сказав, що це

1

В баш,

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

рекурсивно шукає каталоги з іменами, що містять 480, налагодження чи помилку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.