Я хочу взять папку 78 ГБ и сохранить ее в одном файле (для загрузки в облачный сервис), как если бы я сжимал ее в архиве, но мне не нужно какое-либо сжатие (у меня не так много ЦП время доступно). Есть ли способ, которым я могу выполнить это, возможно, команда терминала, о которой я не знаю?
shell
files
compression
cjmaria
источник
источник
tar
В Linux есть команда.tar -cf long.file.tar folder
lzop
рассчитан на скорость.Ответы:
Используйте
tar
:tar -cf my_big_folder.tar /my/big/folder
Восстановите архив с помощью
tar -xf my_big_folder.tar -C /
-C перейдет в корневой каталог для восстановления вашего архива, поскольку созданный выше архив содержит абсолютные пути.
РЕДАКТИРОВАТЬ : из-за относительно большого размера архива, было бы лучше отправить его [напрямую] в его окончательное местоположение, используя SSH или точку монтирования облачного ресурса / папки. Например, как предполагает Коул Джонсон :
или
РЕДАКТИРОВАТЬ : Как предлагает Blacklight Shining , если вы хотите избежать абсолютных путей, вы можете перейти к родительскому элементу большой папки и
tar
оттуда:или
Личные размышления
Включать ли относительные или абсолютные пути - дело личных предпочтений.
Есть случаи, когда абсолютные пути очевидны, например, для восстановления в ситуации аварийного восстановления. Для локальных проектов или коллекций обычно архивируют дерево каталогов от родительского объекта нужной папки, чтобы избежать загромождения текущего каталога в случае случайной распаковки архива на месте. Если big_folder находится где-то глубоко в стандартной иерархии * NIX , возможно, имеет смысл начать архивирование первой нестандартной папки, от которой отклоняется big_folder, и ее дерева каталогов оттуда.
И, наконец, - педантично -
tar
члены архива всегда относительны, так как а) они могут быть восстановлены в любом каталоге и б)tar
удаляют ведущие/
при создании архива. Я лично всегда склонен использовать -C при распаковке архива.источник
tar -cf /network/mount/point/folder.tar /folder
вместо того, чтобы зайти на локальный компьютер, а затем загрузите, если можетеtar -cf $archive.tar -C $source_dir .
. Если конечный компьютер не имеет каталога с тем же путем, что и исходный каталог, вам нужно это сделать. Просто убедитесь, что-C
в новый каталог, когда вы извлекаете (mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir
); иначе содержимое архива будет выгружено в любой каталог, в котором вы оказались.Альтернатива: cpio
Распаковка в текущий каталог:
Предостережения:
find /my/big/folder
вместоcd
, архив будет содержать полные пути и извлечение будет пытаться следовать им;источник