压缩当前文件夹中的所有文件,但在子文件夹下增大 zip 文件的大小

问题描述 投票:0回答:1

在 Linux 中,假设我在当前文件夹中有一些文件,例如

./folder/file1
./file2
./file3

我希望将它们压缩,但在 zip 文件内,它们应该生成在子文件夹中:

./custom/folder/file1
./custom/file2
./custom/file3

是否可以不必先将此类文件复制到“custom”文件夹中,然后再删除“custom”?

linux directory zip subdirectory directory-structure
1个回答
0
投票

您可以使用以下网址解释的技术 https://superuser.com/questions/1750334/create-zip-archive-with-path-prefix

为了展示它是如何工作的,我们首先重新创建示例目录 使用 Bash 的结构:

$ mkdir folder folder{2,3}
$ touch folder/file1
$ tree
.
├── folder
│   └── file1
├── folder2
└── folder3

4 directories, 1 file

使用

bsdtar

$ bsdtar -c -a -f foo.zip -s ",^,custom/," *

检查 foo.zip 的内容:

$ unzip -l foo.zip
Archive:  foo.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  11-16-2024 19:30   custom/folder/
        0  11-16-2024 19:30   custom/folder/file1
        0  11-16-2024 19:27   custom/folder2/
        0  11-16-2024 19:27   custom/folder3/
---------                     -------
        0                     4 files
© www.soinside.com 2019 - 2024. All rights reserved.