0

我正在将文件列表传送到 7zip,尽管它对 cat 之类的东西运行良好,但它似乎并不喜欢这样。

find . -type f | grep -E '\.rar' | 7z -o/unrar/ #fails
Error: 
Incorrect command line

find . -type f | grep -E '\.rar' | cat
//fullpath/file1.rar
//fullpath/file2.rar
//fullpath/file3.rar

正如我所期望的那样,我从 cat 中看到了第一个返回,并将其正常传递给 7zip。这工作得很好

7z -o/unrar //fullpath/file1.rar

也许我应该放弃而只使用 tar?我更喜欢 7zip 的 API。

4

1 回答 1

1

您期望 7z 从标准输入而不是命令行读取要处理的文件名?你确定你不是这个意思

7z -o/unrar $(find . -type f | grep -E '\.rar' )

或类似的东西

find . -type f -a -name \*.rar -exec 7z -o/unrar \\{\\} \;

这将找到所有也匹配 *.rar 的文件(f 型)并在每个文件名上调用 7z。

于 2010-11-13T20:30:26.880 回答