Answers:
您可以使用该-exec
标志在每个匹配文件上执行命令:
$ find ./ -type f -name "*.txt" -exec gedit "{}" \;
语法有点奇怪(-exec command ;
有关更多信息,请参见手册页):
The string `{}' is replaced by the current file name being processed
您可能还需要考虑-execdir
,它会执行相同的操作,但是从包含匹配文件的子目录中执行命令(通常更可取)。
{}
当前文件名的代表,分号只是终止命令。反斜杠和周围的引号只是为了防止外壳扩展。
find . -type f -name "*.txt" -print0 | xargs -0 gedit
man find
或man xargs
,然后/
搜索给定的标志。该文档非常好,它可以回答您的问题。
-print0
在每个条目之后打印一个NULL字符,-0
期望条目以NULL字符分隔。这是处理棘手名称的最安全方法。