Как архивировать с игнорированием файлов размером более 100 МБ
Я пытаюсь архивировать файлы с помощью tar и игнорирую файлы размером более 100 МБ. Это возможно?
PS: не нужно использовать смолу.
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
Просто исключите большие файлы, как это:
tar cf archive.tar / path / to / archive --exclude-from <(найти / path / to / archive -size + 100M)