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