我有一个工具,需要一个 filename.ext 来创建一堆文件,并且还需要一个目录名来放置它们。在我的例子中, filename/ 就可以了。
目录:
文件名1.ext
文件名2.ext
cmd 文件名1.ext 文件名
cmd 文件名2.ext 文件名2
我一直在尝试通过 find 来解决这个问题,但也许有更好的方法?
find . -iname "*.ext" -exec cmd ... ?
答案1
我找到了一个解决方案,不确定它是否是最佳的。
find -iname "*.ext" -exec bash -c 'cmd "$1" "${1%.*}"' bash {} \;
这将调用cmd filename.ext filename
每个匹配的文件
根据 ilkkachu 的输入更新了解决方案,谢谢!
答案2
如果您知道 <filename.ext> 的扩展名是什么,请尝试
for i in *.ext; do cmd "$i" "$(basename -s .ext "$i")"; done