在Linux中一次解压缩或者解压缩许多文件

时间:2020-01-09 10:45:44  来源:igfitidea点击:

如果我们有一个包含数十个压缩或者rar文件的目录,那么由于bash shell的强大功能,我们可以运行一个命令将其全部解压缩。

对于此任务,我们将使用bash的loop命令结构。将<var>替换为变量名,并将<list>替换为输出列表或者显式列表的命令。

for <var> in <list>
do
   command $<var>;
done

我们可以使用以下语法在一行上运行它:

for <var> in <list>;do command $<var>;done

因此,如果要解压缩文件列表,可以使用此命令。我们不一定需要使用引号,但是当文件名中包含空格或者类似内容时,它会有所帮助。

for f in *.rar;do unrar e "$f";;done

如果要使用7zip提取文件列表:

for f in *.001;do 7z e "$f";;done

或者,如果我们想解压缩文件列表:

for f in *.zip;do unzip "$f";;done

如果愿意,我们甚至可以将命令链接在一起。例如,如果我们所有的zip文件都包含.txt文件,并且我们想解压缩它们,然后将解压缩的文件移动到另一个目录:

for f in *.zip;do unzip "$f";;done; for f in *.txt;do mv "$f"; /myfolder/;done