Как найти имя файла, которое составляет ровно 8 уровней?

Я использую команду «найти» для поиска файлов в резервной системе. Я хочу найти все имена файлов, содержащие определенную строку (например, « XYZ »), которые ровно на 8 уровней.

Есть ли синтаксис поиска, который будет делать это? Большое спасибо.

Предполагая, что вы используете GNU find или другую find которая имеет эти параметры,

 find . -mindepth 8 -maxdepth 8 -name '*XYZ*' 

Если у вас нет такой команды find , вы можете использовать эту версию POSIX:

 # must contain exactly 7 slashes find . -path '*/*/*/*/*/*/*/*' -prune -name '*XYZ*' 

-path '*/*/*/*/*/*/*/*' выбирает пути с глубиной не менее 8 уровней (содержит по крайней мере 7 слэшей, глубина 0 сама по себе, глубина 1 – это файлы в текущем каталоге ), то выполнение -prune для них предотвратит find по убыванию в те папки, которые имеют 8 уровней, поэтому 9 и выше никогда не будут видны.