Я хочу сжать папку с 100 файлами в партиях по 10. Я использовал следующий скрипт для этого. Но что происходит, когда я разархивирую gzip-файл, у него есть все папки из /.
find /home/ubuntu/reports/tmp -type f -print0 | split -t '\0' -l 5 -d --filter 'tar czf /home/ubuntu/reports/tmp/reports-$(date +"%F-%T")-$FILE.tar.gz --files-from=- --null'
Может ли кто-нибудь рассказать мне, как хранить только файлы без содержащихся папок?
Простейшим способом было бы просто cd в каталоге и запустить find оттуда:
cd /home/ubuntu/reports/tmp
find . -type f -print0 | split -t '\0' -l 5 -d --filter 'tar czf /home/ubuntu/reports/tmp/reports-$(date +"%F-%T")-$FILE.tar.gz --files-from=- --null'
Обратите внимание, что вы создаете файлы tar.gz в том же каталоге, что и файлы, что означает, что они появятся на выходе find, а затем будут включены в другие файлы tar.gz. Поместите файлы tar.gz в какой-либо другой каталог.
Кроме того, для партий по 10 вам нужно -l 10, а не -l 5, которые будут состоять из 5.
Простейшим способом было бы просто cd в каталоге и запустить find оттуда:
cd /home/ubuntu/reports/tmp
find . -type f -print0 | split -t '\0' -l 5 -d --filter 'tar czf /home/ubuntu/reports/tmp/reports-$(date +"%F-%T")-$FILE.tar.gz --files-from=- --null'
Обратите внимание, что вы создаете файлы tar.gz в том же каталоге, что и файлы, что означает, что они появятся на выходе find, а затем будут включены в другие файлы tar.gz. Поместите файлы tar.gz в какой-либо другой каталог.
Кроме того, для партий по 10 вам нужно -l 10, а не -l 5, которые будут состоять из 5.
Простейшим способом было бы просто cd в каталоге и запустить find оттуда:
cd /home/ubuntu/reports/tmp
find . -type f -print0 | split -t '\0' -l 5 -d --filter 'tar czf /home/ubuntu/reports/tmp/reports-$(date +"%F-%T")-$FILE.tar.gz --files-from=- --null'
Обратите внимание, что вы создаете файлы tar.gz в том же каталоге, что и файлы, что означает, что они появятся на выходе find, а затем будут включены в другие файлы tar.gz. Поместите файлы tar.gz в какой-либо другой каталог.
Кроме того, для партий по 10 вам нужно -l 10, а не -l 5, которые будут состоять из 5.