在-exec命令中查找返回成功的文件名

Him*_*shu 9 unix linux bash find

我使用find来查找返回查询的某些行的数据库的名称.

$ find . -name 'sqlite.db' -exec sqlite3 "{}" 'SELECT * FROM table WHERE column1="value"' \; 

value|a|b|c|d
Run Code Online (Sandbox Code Playgroud)

但是我想要数据库的名称,所以我尝试了-print显示了所有的名字

$ find . -name 'sqlite.db' -print -exec sqlite3 "{}" 'SELECT * FROM table WHERE column1="value"' \; 

/dir1/a/sqlite.db
value|a|b|c|d
/dir2/a/sqlite.db
/dir2/b/sqlite.db
/dir3/a/sqlite.db
Run Code Online (Sandbox Code Playgroud)

有没有办法只能获得命令运行的退出状态成功的文件.

Wil*_*ell 9

你只需要在-print之后-exec.它是一个短路布尔值and,通过放置-print之前-exec,打印发生在exec之前.

find . -name sqlite.db -exec ... \; -print
Run Code Online (Sandbox Code Playgroud)