如何将目录中的每个文件压缩到自己的 tar 中,同时保留每个文件的名称?
即 file1.out file2.out
-->
file1.out.tar.gz file2.out.tar.gz
Sve*_*ven 76
在这种情况下,将每个文件放入单独的 tar 文件没有任何意义。您可以使用gzip
直接压缩它们:
gzip *
Run Code Online (Sandbox Code Playgroud)
将导致file1.out.gz
,file2.out.gz
等等。
tar
仅当您需要将压缩存档作为单个文件时才使用。
如果您需要每个文件的 tar 存档,您可以像这样创建它:
for i in *; do tar -czf $i.tar.gz $i; done
Run Code Online (Sandbox Code Playgroud)
flu*_*ffy 11
要建立在@SvenW 的答案(仅适用于当前目录)的基础上,如果您有大量文件或想要在递归目录结构上执行此操作,您也可以使用
find . -type f -exec gzip \{\} \;
Run Code Online (Sandbox Code Playgroud)
如果您需要将输出放入不同的目录(在本例中为../target
)并且不想删除原件,您可以执行以下操作:
find . -type f -print | while read fname ; do
mkdir -p "../target/`dirname \"$fname\"`"
gzip -c "$fname" > "../target/$fname.gz"
done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53396 次 |
最近记录: |