ter*_*don 41
如果你真的想并行解压缩它们,你可以这样做
for i in *zip; do unzip "$i" & done
Run Code Online (Sandbox Code Playgroud)
但是,这将为 N 个 .zip 文件启动 N 个进程,并且可能对您的系统造成很大负担。对于更可控的方法,一次只启动 10 个并行进程,试试这个:
find . -name '*.zip' -print0 | xargs -0 -I {} -P 10 unzip {}
Run Code Online (Sandbox Code Playgroud)
要控制启动的并行进程的数量,请更改-P为您想要的任何内容。如果您不想递归到子目录,请执行以下操作:
find . -maxdepth 1 -name '*.zip' -print0 | xargs -0 -I {} -P 10 unzip {}
Run Code Online (Sandbox Code Playgroud)
或者,您可以按照@OleTange 在评论中的建议安装GNU parallel并运行
parallel unzip ::: *zip
Run Code Online (Sandbox Code Playgroud)
Way*_*rad 18
的GNU并行命令非常适合于这种类型的事情。后:
$ sudo apt-get install parallel
Run Code Online (Sandbox Code Playgroud)
然后
ls *.zip | parallel unzip
Run Code Online (Sandbox Code Playgroud)
这将使用尽可能多的内核,让每个内核忙于解压缩,直到它们全部完成。
nux*_*nux 12
您可以使用以下命令:
首先将终端中的目录更改为包含 .zip 文件的目录:
cd /path
Run Code Online (Sandbox Code Playgroud)
然后执行此命令解压缩所有 .zip 文件:
for z in *.zip; do unzip "$z"; done
Run Code Online (Sandbox Code Playgroud)
g_p*_*g_p 10
如果您的.zip文件夹中有很多文件并且您想解压缩所有文件,请打开终端并使用以下命令转到您的文件夹:
cd <path_to_folder>
Run Code Online (Sandbox Code Playgroud)
现在使用此命令解压缩所有.zip文件:
ls *.zip | xargs -n1 unzip
Run Code Online (Sandbox Code Playgroud)
你可以-exec像这样使用 find ,
find . -name "*.zip" -exec unzip {} \;
Run Code Online (Sandbox Code Playgroud)
如果文件名称中有空格,这将起作用。