代码之家  ›  专栏  ›  技术社区  ›  Titouan de Bailleul

使用convert时出现意外标记“(”附近的语法错误

  •  1
  • Titouan de Bailleul  · 技术社区  · 8 年前

    我正在试着运行 convert 命令来调整某些图像的大小。

    find build_reports/functional_tests/results -name '*.png' | xargs -I {} sh -c 'convert -resize 20% {} {}'
    

    我遇到的问题是,文件的名称中有(和)(例如,build\u reports/functional\u tests/results/Attachments/Screenshot of main screen(ID 1)\u 1\u 0FEF8183-AF87-4517-928D-8C4A2ED984D0。png),我无法重命名这些文件,因为它们链接到了其他地方。

    当我运行该命令时,我得到以下警告,并且图像没有调整大小

    sh: -c: line 0: syntax error near unexpected token `('
    sh: -c: line 0: `convert -resize 20% build_reports/functional_tests/results/Attachments/Screenshot of main screen (ID 1)_1_D94BAEBC-F463-4EEE-8FAE-C49AFF4A8FFE.png {}'
    

    无论如何,是否可以通过某种方式逃逸find命令的结果来消除这些警告并使其生效?

    1 回复  |  直到 8 年前
        1
  •  1
  •   nbari    8 年前

    尝试一下:

    find . -iname "*.png" -exec convert -resize 20% '{}' '{}' \;
    

    注意单引号 '{}'