linux - 是否可以在不保留 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
或者我应该先将文件提取到单个目录然后压缩。
解决方案
如果由于某种原因您引用的答案不起作用,请尝试使用此方法。
创建目录
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
推荐阅读
- visual-studio-code - VSCode Intellisense 在 Jupyter Notebook Extension(MacOS)中不起作用
- python - 在OpenCV python中绘制最大面积轮廓的质心
- sql - 从特定键开始选择记录
- mysql - 对于按主键索引的顺序放置分区键的位置是否有一般规则?
- mysql - 我想在 MySQL 上的 while 条件中添加一个属性
- html - 如何在 HTML 中使用 div 标签
- amazon-redshift - 在 Redshift 中查找下一个最旧的行
- linux - 使用服务在 .bash 中启动 .sh 或在服务中启动 .sh 文件
- typescript - 异步函数需要 Visual Studio 2019 中的“Promise”构造函数
- curity - 如何确定多久前在 Curity 中发布了刷新令牌