代码之家  ›  专栏  ›  技术社区  ›  Drew

获取7zip以接受管道参数

  •  0
  • Drew  · 技术社区  · 15 年前

    我正在用管道将文件列表发送到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
    

    我从猫身上看到了第一次返回,然后正常地传递到7zip,正如我所期望的那样。这很管用

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

    也许我应该放弃使用焦油?我更喜欢7zip的API。

    1 回复  |  直到 15 年前
        1
  •  1
  •   alex    15 年前

    您希望7z从标准输入读取要处理的文件名,而不是从命令行读取?你确定你不是说

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

    或者类似的

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

    它将找到所有与*.rar匹配的文件(f类型),并对每个文件名调用7z。

    推荐文章