我试图一次提取许多 rar 文件,但没有成功。我正在按顺序尝试:
>ls *.rar|xargs unrar x
>ls *.rar|xargs unrar e
>unrar e -r *.rar
>for f in *.rar;do unrar e “$f”;done
Run Code Online (Sandbox Code Playgroud)
没有人工作。Rar 每次都回答说没有要提取的文件。
>Extracting from damned_file.rar
No files to extract
Run Code Online (Sandbox Code Playgroud)
如果我尝试一一提取文件,则一切正常
>unrar e damned_file.rar
extracting damned_file.rar
extracting dmaned_file.txt OK
All OK
>
Run Code Online (Sandbox Code Playgroud)
我的 rar 版本是
UNRAR 4.10 freeware Copyright (c) 1993-2012 Alexander Roshal
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
PS:命令
find . -name "*.rar" -exec unrar e {} \;
Run Code Online (Sandbox Code Playgroud)
工作正常,但问题保持不变。为什么前面的命令失败?
小智 11
这是我的 for 循环:
for file in *.rar; do unrar e "$file"; done
Run Code Online (Sandbox Code Playgroud)
xargs
将参数放在提供给它的命令后面,直到达到当前 shell 的最大命令长度,因此该命令将是:
xargs unrar e damned_file.rar another_damned_file.rar yadf.rar
Run Code Online (Sandbox Code Playgroud)
但是,unrar
只接受单个 rar 文件作为参数。您指定的 find 命令unrar
针对它找到的每个文件运行,因此该命令是unrar e damned_file.rar
, unrar e another_damned_file.rar
。
归档时间: |
|
查看次数: |
14728 次 |
最近记录: |