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