用Linux的tar命令批量压缩单个文件

多个文件准备

先创建一个文件app.log,并输入一些内容。

$ vim app.log

然后按每个文件50行分割成多个文件,行数可自行指定。

$ split -l 50 app.log app_ -d
$ ls
app_00  app_01 app_02  app_03 app.log

使用tar命令批量压缩单个文件

批量压缩文件

$ ls app_*|xargs -I {} tar czvf {}.tar.gz {}

结果

$ ls
app_00  app_00.tar.gz  app_01  app_01.tar.gz  app_02  app_02.tar.gz  app_03  app_03.tar.gz  app.log

其中,实现的关键是xargs的-I选项。-I可以指定目标字符(如{})来标识标准输入内容,从而可以多次应用于后续的操作。

-I replace-str

Replace occurrences of replace-str in the initial-arguments with names read from standard input. Also, unquoted blanks do not terminate input items; instead the separator is the newline character. Implies -x and -L 1.

在这里,ls app_*对于xargs输出的内容是每一个文件名.

然后通过tar命令实现压缩

tar czvf {}.tar.gz {}

---转载本站文章请注明作者和出处 二进制之路(binarylife.icu),请勿用于任何商业用途---

留下评论