首页 > 解决方案 > 是否可以在不保留 Linux 结构的情况下压缩文件?

问题描述

我有以下目录结构:

A0
├── A1
│   ├── A1_B1
│   │   ├── A1_B1_1.docx
│   │   ├── A1_B2_2.pptx
│   ├── A1_B2
│   │   └── A1_B2_C1
│   │       ├── A1_B2_C1_D1
│   │       │   ├── A1_B2_C1_D1_1.docx
│   │       │   └── A1_B2_C1_D1_2.docx
│   │       └── A1_B2_C1.xlsx
├── A2
└── A0.txt

我想创建一个仅包含文件的 .7z 文件。我不想保留文件夹。我已经尝试过这个答案这个答案,但它们在 Linux 中不起作用。
是否可以这样做,7z或者我应该先将文件提取到单个目录然后压缩。

标签: linux7zip

解决方案


如果由于某种原因您引用的答案不起作用,请尝试使用此方法。

创建目录

mkdir flat_dir

递归链接所需文件夹中的所有文件flat_dir,对我来说,所需文件夹是cpptest.

for full_path_file in $(find ../cpptest -type f)
do
echo "$full_path_file"
filename=$(echo "$full_path_file" | rev | cut -d '/' -f 1 | rev)
echo "$filename"
ln -s -T "$full_path_file" "$filename"
done

压缩文件

7z a test.zip -l ~/flat_dir

推荐阅读