如果Bash的条件未能执行,则内有通配符.当提供文字文件名时工作



我正试图根据目录中的文件类型执行一个命令。但我无法使用通配符检查目录中的内容。当提供一个文字文件名时,我可以执行。

find ./* -type d -execdir bash -c 'DIR=$(basename {}); if [[ -e {}/*.png ]]; then echo "img2pdf {}/*.png -o $DIR.pdf"; fi ' ;

find可以直接找到png-s,而不是遍历目录,然后在其中查找png-s:

find . -name '*.png'

然后你可以像你做的那样处理它,或者使用xargs:

find . -name '*.png' | xargs -I '{}' img2pdf '{}' -o '{}.pdf'

上面的命令将处理将每个png转换为单独的pdf。

如果你想一次通过所有png-s,并调用img2pdf一次:

find . -name '*.png' | xargs img2pdf -o out.pdf

相关内容

  • 没有找到相关文章

最新更新