如何将文件夹插入 ZIP 文件中?

如何将文件夹插入 ZIP 文件中?

我是 Linux 新手,必须使用 zip 命令执行类似这样的操作:

我的 zip 文件 abc.zip 中的文件夹结构是:

-- currentdir
  -- onestepdeep
     -- abc.zip
       -- folder1
         -- textfile.txt
       -- folder2
  -- seconddir
    -- folder3 
      -- textfile.txt

我需要将文件textfile.txtseconddir/folder3复制到folder1里面abc.zip

我可以搬入textfile.txt以下abc.zip房间:

  1. 它将进入abc.zipfolder3/textfile.txt保留层次结构)
  2. 还使用了一个-j开关(帮助说它丢弃了路径信息,但确实如此) - 它只会移动到abc.zip并位于同一水平,folder1folder2不是替换textfile.txt内部abc.zip/folder1

我的问题是——我想abc.zip/folder1/textfile.txt用里面的那个替换seconddir/folder3/textfile.txt

如何通过命令行界面实现这一点?

答案1

我也使用 tar,但如果您需要 zip,那么:

zip -b path/to/create/in zipfile.zip textfile.txt

答案2

我总是自己用焦油滚动......

tar -cjf destination_archive_file.tar.bz2 /path/to/directory/to/archive

这将为您提供一个文件“destination_archive_file.tar.bz2”,其中存储了“/path/to/directory/to/archive”内的所有内容。

然后要提取,你只需使用:

tar -xjvf destination_archive_file.tar.bz2

无论如何,我知道你明目张胆地要求使用 zip,而不是 tar。我试过几次 zip,发现它有点违反直觉。从来没有费心去真正弄清楚,因为我只使用 tar 并继续使用它。如果你需要在 Windows 中提取 tar,7-zip或者压缩包应该可以解决问题。我确信 OSX 本身就支持它。

答案3

也许安装fuse-zip,这是一个非常方便的工具。以下命令:

fuse-zip abc.zip abc.mnt

abc.zip将显示目录中的内容abc.mnt。然后对目录的内容进行任何您想做的事情:

cp -r ../seconddir/folder3 abc.mnt/

此后,卸载目录:

fusermount -u abc.mnt; rm -rf abc.mnt

你完成了。

相关内容