访问通过 find 找到的文件

访问通过 find 找到的文件

在许多情况下,当我使用命令找到文件后,find我想打开该文件或捕获它或者打印它。如何对find的结果进行操作?例如,

: find . -name "myfile.txt"
./docs/myfile.txt

: find . -name "myfile.txt" | less

不起作用,因为它将字符串“./docs/myfile.txt”提供给 less,而不是指定路径处的文件内容。

答案1

与@coffeeMug类似,这是更新的方法,因为它显然更快:

find . -name "*.log" -exec ls -l '{}' +

我也会向你指出命令行Fu,这对这些事情总是有帮助的。

答案2

less $(find . -name myfile.txt)

less `find . -name myfile.txt`

我相信,第一个既符合 POSIX 标准又可嵌套。我认为,第二个更便携。

答案3

您可以使用 find 的-exec标志来实现此目的:

find . -name "*.log" -exec ls -l '{}' \;

在此示例中, find 搜索当前目录中的所有日志文件,然后使用 列出它们ls -l。在你的情况下,你应该替换lsless.请参阅此处查找手册页的 ACTION 部分查找(1) 手册页

答案4

无法自动获取上一个命令的输出(不在任何通常的环境下)。但是如果你用鼠标手动选择输出,那么你可以运行

less `xsel`

或者,如果输出包含空格或通配符并且您没有运行 zsh,

less "`xsel`"

如果您不介意再次运行该命令,请按然后在行首和末尾Up添加(或在行首并处理 bash 或 ksh 中的空格)。less ``less "``"

相关内容