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

7

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

    
задан Faruk Uzun 21.02.2012 в 11:43
источник

2 ответа

8

Да, возможно, есть еще несколько способов сделать это, но вам, вероятно, лучше всего работать с 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
    
ответ дан Oli 21.02.2012 в 11:58
источник
0

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

tar cf archive.tar / path / to / archive --exclude-from & lt; (find / path / to / archive -size + 100M)

    
ответ дан eshwar 16.02.2016 в 10:13