Я хочу перебирать подкаталоги моего текущего местоположения и gzip каждый файл отдельно. Для архивирования файлов в директории, я используюКак gzip все файлы во всех подкаталогах в bash
for file in *; do gzip "$file"; done
, но это может только работать на текущей директории, а не подкаталогов текущего каталога. Как я могу переписать вышеприведенные утверждения, чтобы он также застегнул файлы во всех подкаталогах?
Ваше последнее предложение является общей дезинформацией. Поиск знает, где начинается имя файла и где оно заканчивается. Сам, у него нет никаких проблем с пробелами или разрывами строк и другими забавными вещами. Таким образом, '-exec gzip {}' вызывает gzip с одним именем файла, и поскольку никакая промежуточная оболочка не вызывается, которая может интерпретировать пробел как разделитель, gzip получит полное имя файла. Подсказка в справочной странице поиска кажется устаревшей и означает: ваша оболочка может попытаться интерпретировать {}, прежде чем передать ее, но ее не видели [в течение многих лет] (http://unix.stackexchange.com/q/ 8647/4485). –
Вы узнаете что-то новое каждый день. Спасибо за урок! –
+1 для файлов исключений * .gz – GuruM