Как найти все файлы с определенным родительским каталогом в Linux?

Как вы находите все файлы с определенным родительским каталогом в терминале командной строки linux?

Я знаю, чтобы найти все файлы с помощью find следующим образом:

find . -name filename.extension

Но можно ли найти все filename.extension файлы с родительским каталогом foldername?

Я пробовал следующее, но это не работает:

find . -name foldername/filename.extension

И я не могу найти пример того, как это сделать.

Итак, некоторые примеры результатов, которые я ожидаю, таковы:

./example/project/website/foldername/filename.extension
./folder/demo/foldername/filename.extension
./more/files/foldername/filename.extension
./business/assets/foldername/filename.extension
./steven/foldername/filename.extension

Есть ли способ сделать это?

Ответ 1

Используйте переключатель -path с find

find . -path \*/foldername/filename.extension

Ответ 2

Просто попробуйте это

locate "/*/foldername/filename.extension"

если вы обновили индекс с помощью updatedb

Ответ 3

Вы можете запустить:

find ./ | grep 'foldername/filename.extension$'
Команда

"find" найдет все файлы, а "grep" будет фильтровать их с помощью регулярного выражения.

PS. Также вы можете использовать параметр "-exec" для "find".

Ответ 4

  1. Найти все каталоги с именами examples.
  2. Затем опустите результаты, у которых есть родительский каталог с именем node_modules.

find. -type d -name examples | grep -v node_modules

Ответ 5

Просто покажите результаты в родительском каталоге

Find -maxdepth 1 -type f -name 'file.extension'