Как архивировать с игнорированием файлов размером более 100 МБ

Я пытаюсь архивировать файлы с помощью tar и игнорирую файлы размером более 100 МБ. Это возможно?
PS: не нужно использовать смолу.

7
задан 11 March 2013 в 14:00

2 ответа

Да, возможно, есть еще несколько способов сделать это, но вам лучше всего использовать find, так как он настолько настраиваемый.

find /path/to/dir -size -100M | xargs tar cvf archive.tar

или

tar cvf archive.tar $(find /path/to/dir -size -100M)

Если в текущей папке есть другие каталоги, которые вы не хотите архивировать, используйте:

find /path/to/dir -maxdepth 1 -size -100M | xargs tar cvf archive.tar

В В комментариях ниже пробелы могут выбрасывать некоторые ошибки, но в моем тестировании они все еще добавлялись в архив при использовании первого метода (немного странно самого по себе), но если вы беспокоитесь, вы можете исправить команду find, чтобы заменить пробелы с экранированными версиями.

Как всегда, есть миллиард способов сделать это.

find /path/ -size -100M | sed 's/ /\\ /g' | xargs tar cvf archive.tar

find /path/ -size -100M -exec echo '"{}"' \; | xargs tar cvf archive.tar
0
ответ дан 11 March 2013 в 14:00

Просто исключите большие файлы как это:

tar cf archive.tar/path/to/archive - исключает - из <(найдите/path/to/archive - размер +100M),

0
ответ дан 11 March 2013 в 14:00

Другие вопросы по тегам:

Похожие вопросы: