Мне нужно найти файлы, которые соответствуют этому шаблону:
find root_folder/*/match_string/*.ext
«*» означает любые уровни папок или файлов. Таким образом, это означает любой файл с расширением «ext» в root_folder или его подпапке и полный путь которого содержит папку с именем «match_string», например:
root_folder/f1/f2/match_string/f3/f4/1.ext
root_folder/f1/f2/match_string/2.ext
Но приведенная выше команда не работает. find -name также не работает.
И мне нужно вывести список результатов сопоставленных файлов в файл для последующего импорта в команду zip. Кажется, не совсем просто использовать «>», если используются каскадные команды.
Можно использовать
find /path/to/root_folder -type d -name "match_string" -exec find "{}" -type f -name "*.ext" \; > ~/file_list
, команда будет искать все папки, названные match_string
, затем искать все файлы, который называет конец с .ext
в них и их подпапках, и перечислите все найденные файлы с их абсолютными путями. Список будет сохранен в ~/file_list
.
, Если Вы используете
cd /path/to/root_folder
find -type d -name "match_string" -exec find "{}" -type f -name "*.ext" \; > ~/file_list
, файлы будут перечислены с относительными путями к текущему каталогу, но название текущего каталога (который является path/to/root_folder
) не будет отображено, вместо этого ./
отображен.
Сохраняют список файлов в файл с удаленной "отправной точкой" (, человек находит ).
pwd
/opt/askubuntu/
find /opt/askubuntu/ -type f -path '*/askubuntu/temp/*' -name '*.ext' -fprintf /opt/backup/zip-archive-file.list %P\\n
Архив zip-archive-file.list
cat /opt/backup/zip-archive-file.list
temp/example/a/a/a.ext
temp/example/a/a.ext
temp/example/c/c.ext
temp/example/c/c/c.ext
temp/example/b/b.ext
temp/example/b/b/b.ext
из файла ( zip человека ).
zip /opt/backup/archive -@ < /opt/backup/zip-archive-file.list
adding: temp/example/a/a/a.ext (stored 0%)
adding: temp/example/a/a.ext (stored 0%)
adding: temp/example/c/c.ext (stored 0%)
adding: temp/example/c/c/c.ext (stored 0%)
adding: temp/example/b/b.ext (stored 0%)
adding: temp/example/b/b/b.ext (stored 0%)
Канал находят, что результат архивирует.
find /opt/askubuntu/ -type f -path '*/askubuntu/temp/*' \
-name '*.ext' -printf %P\\n | zip /opt/backup/archive -@