我发现自己不断地查找语法
find . -name "FILENAME" -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
主要是因为我不明白这-exec
部分是如何工作的。大括号、反斜杠和分号的含义是什么?该语法还有其他用例吗?
如果我只使用 basename {} .txt,它会起作用:
find . -iname "*.txt" -exec basename {} .txt \;
Run Code Online (Sandbox Code Playgroud)
它只会打印 xxx 而不是 ./xxx.txt
如果我想在 -exec 选项中使用 $(basename {} .txt) ,它将失败:
find . -iname "*.txt" -exec echo "$(basename {} .txt)" \;
Run Code Online (Sandbox Code Playgroud)
它只会打印 ./xxx.txt
我怎么解决这个问题?我希望我可以$(basename {} .txt)
用作其他 cmd 的参数。我必须用 xargs做sh -c
或管道-exec basename {} \;
吗?