Я пытаюсь перечислить все файлы в родительском каталоге и его подкаталогах. Тем не менее, я запускаю эту команду из другого места. Итак, сначала мне нужно перейти в каталог (откуда я хочу запустить эту команду).Поиск рекурсивно для файлов в родительском каталоге в Linux
Обратите внимание: я использую команду find вместо ls, потому что также хочу перечислить абсолютный путь для каждого файла перед ним. Это невозможно с помощью команды ls.
вот что я делаю:
cd ../../../;cd level1_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"
Эта команда не показывает никаких выходных данных.
Вот структура каталога:
level1_dir1
это имеет несколько подкаталогов:
level2_dir1
level2_dir2
....
level2_dir10
каждый из этих подкаталогов снова есть подкаталоги и файлы внутри них.
однако, теперь, если я:
cd ../../../;cd level1_dir1/level2_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"
он будет делать рекурсию правильно для всех подкаталогов в level2_dir1 и показать выход, как:
date level1_dir1/level2_dir1/path/to/file/filename
так, я хотел бы напечатать для все каталоги уровня2, таким образом (с использованием дикого характера):
cd ../../../;cd level1_dir1/*;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"
но он печатает из результатов только для первого каталога в level2 (то есть level2_dir1)
Как я могу составить список файлов вниз для всех подкаталогов?
спасибо.
Вы имеете в виду 'find. -name '*' '? Или 'find ../../../ -name '*'' – Bart
Я сначала меняю каталог, чтобы перейти в родительский каталог, откуда я начну поиск всех файлов рекурсивно. –
Вам не нужно «cd» обратно. 'find' может справиться с этим. См. Мой предыдущий комментарий. – Bart