在许多情况下,当我使用命令找到文件后,find
我想打开该文件或捕获它或者打印它。如何对find的结果进行操作?例如,
: find . -name "myfile.txt"
./docs/myfile.txt
: find . -name "myfile.txt" | less
不起作用,因为它将字符串“./docs/myfile.txt”提供给 less,而不是指定路径处的文件内容。
答案1
答案2
less $(find . -name myfile.txt)
less `find . -name myfile.txt`
我相信,第一个既符合 POSIX 标准又可嵌套。我认为,第二个更便携。
答案3
您可以使用 find 的-exec
标志来实现此目的:
find . -name "*.log" -exec ls -l '{}' \;
在此示例中, find 搜索当前目录中的所有日志文件,然后使用 列出它们ls -l
。在你的情况下,你应该替换ls
为less
.请参阅此处查找手册页的 ACTION 部分查找(1) 手册页。
答案4
无法自动获取上一个命令的输出(不在任何通常的环境下)。但是如果你用鼠标手动选择输出,那么你可以运行
less `xsel`
或者,如果输出包含空格或通配符并且您没有运行 zsh,
less "`xsel`"
如果您不介意再次运行该命令,请按然后在行首和末尾Up添加(或在行首并处理 bash 或 ksh 中的空格)。less `
`
less "`
`"