42 compression unix tar
我正在.tar处理一些带有 path 的文件example/super_user/Output.*。
结果.tar如下所示:
+ example
+ super_user
- Output.zip
- Output.xml
- Output.txt
Run Code Online (Sandbox Code Playgroud)
但我希望文件如下所示:
- Output.zip
- Output.xml
- Output.txt
Run Code Online (Sandbox Code Playgroud)
你知道我如何在另一个目录中实现这一目标吗?
小智 40
如果目录“example”位于文件系统的根目录,这是另一种方式:
tar -C /example/super_user -cvf result.tar .
Run Code Online (Sandbox Code Playgroud)
这会将目录更改为您想要执行 tar 的点。需要注意的是,如果 /example/super_user 下有任何子目录,将保留这些子目录的目录结构。
小智 14
我已经在这里发布了我的答案:
转帖(懒人版)
这很丑陋......但它有效......
我有同样的问题,但有多个文件夹,我只想把每个文件都弄平。您可以使用选项“转换”来传递 sed 表达式,并且...它按预期工作。
这是表达式:
's/.*\///g' (删除'/'之前的所有内容)
这是最后的命令:
tar --transform 's/.*\///g' -zcvf tarballName.tgz */*/*.info
Run Code Online (Sandbox Code Playgroud)
Gaf*_*aff 12
tar 将保留文件和文件夹结构,因此我认为没有任何方法可以指示 tar 在创建时展平层次结构。
一种解决方法是临时更改目录,创建 tar,然后返回 - 下面是一个快速示例:
cd example/super_user && tar -cvf ../../result.tar Output.* && cd ../..
Run Code Online (Sandbox Code Playgroud)
小智 9
要使用目录 (DIR) 中的所有文件创建 tar (ARCHIVE.tar),没有任何父目录信息(甚至没有 ./),您可以使用以下内容:
find "DIR" -type f -printf "%f\n" | xargs tar cf ARCHIVE.tar -C "DIR"
Run Code Online (Sandbox Code Playgroud)
您可以使用查找来限制深度、选择特定文件和许多其他内容。
祝你好运!
| 归档时间: |
|
| 查看次数: |
50177 次 |
| 最近记录: |