Zip-файл с помощью tar на сервере Linux

Zip-файл с помощью tar на сервере Linux

Я пытаюсь создать zip-файл из нескольких файлов, но при распаковке zip-архива получается только 1 файл.

tar cfvz test.zip file1.mp3 file2.mp3 file3.jpg

И после того, как я извлек test.zip, я получаю только файл «test». Размер zip-архива в порядке, я просто не знаю, как заставить это работать так, чтобы при извлечении я получал те же файлы: «file1.mp3 file2.mp3 file3.jpg»

решение1

Мне это помогло:

$ tar -czvf test.tar.gz ./file1 ./file2 ...

$ tar -tzf test.tar.gz
./file1
./file2

# to extract do:
$ tar -xzf test.tar.gz

После передачи fпараметра необходимо указать имя файла создаваемого архива.

О, и в случае, если вы используете zipдля распаковки файла, вы не получите каталог, а вместо этого получите tarball. Tarball содержит все ваши файлы. Используйте:

tar -xf test

И вы должны увидеть все свои файлы.

Если вы хотите иметьнормальныйzip-файлы, используйте zipкоманду вместо tar/ gztandem. Также хорошей практикой является добавление правильного суффикса файла:

  • tar с gzip (т.е. tar czvf ...): имя_файла.tar.gz
  • tar с bzip2 (т.е. tar cjvf ...): имя_файла.tar.bz2
  • tar без сжатия (т.е. tar cvf ...): имя_файла.tar

решение2

Во-первых, даже если вы назвали свой сжатый файл .zip, это не ZIP-файл, а файл TAR и GZIP, поэтому правильным расширением файла будет .tar.gzили .tgz.

Теперь, какую команду вы использовали для извлечения сжатого файла? Если вы использовали утилиту ZIP, она могла спутать расширение и только распаковать файл, не распаковав его. Это объяснило бы, почему результатом является один файл, который на самом деле является файлом TAR. Если вы используете утилиту untar (или команду tar -xf test), вы должны получить обратно все ваши файлы изнутри.

решение3

Чтобы извлечь файлы, вам необходимо сделать следующее:

tar xvfz test.zip 

и по умолчанию все файлы будут извлечены из пути относительно того, где вы находитесь, так что если test.zip содержал myfile.txt dir1/myfile.txt, оба файла будут извлечены из zip-архива

Связанный контент