相关疑难解决方法(0)

了解 `find` 的 -exec 选项

我发现自己不断地查找语法

find . -name "FILENAME"  -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

主要是因为我不明白这-exec部分是如何工作的。大括号、反斜杠和分号的含义是什么?该语法还有其他用例吗?

shell find

116
推荐指数
1
解决办法
8万
查看次数

在 find -exec 中使用 basename?

如果我只使用 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 {} \;吗?

find basename

6
推荐指数
3
解决办法
2万
查看次数

标签 统计

find ×2

basename ×1

shell ×1