Pau*_*yer 12 command-line text-editor
假设我想要ls在nanoor中查看的输出tilde。
我会做以下事情:
ls >> tmp
nano tmp
rm tmp
Run Code Online (Sandbox Code Playgroud)
我不喜欢这样,因为它会创建一个我有时会忘记删除的转储文件。有些人建议这样做:
ls | less
Run Code Online (Sandbox Code Playgroud)
或者
ls | more
Run Code Online (Sandbox Code Playgroud)
但我不能这样做:
ls | nano
Run Code Online (Sandbox Code Playgroud)
那么如何解决这个问题呢?我会需要这个,特别是当涉及到巨大的终端输出时,比如我想在之后进行搜索的当前进程。
van*_*ium 14
许多程序通常-用来表示标准输入或标准输出。因此,您可以使用 nano-作为文件名打开命令的屏幕输出,如下所示:
ls | nano -
Run Code Online (Sandbox Code Playgroud)
这仅在您的程序确实支持该约定时才有效。这包括nano与vi该终端上。甚至图形文本编辑器也gedit支持它。但是,pluma或者mousepad不支持它,而是会被指示创建一个名为-. 在其他情况下,您无法先创建常规中间文件。
如果确实需要使用波浪号查看,您可以编写您的想法
在您的.bashrc
function tildeIt () {
tmpfile=$(mktemp)
"$@" > $tmpfile
tilde $tmpfile
rm $tmpfile
}
# $@ is all words typed after tildeIt
# mktemp creates a temp file and returns his fullname
Run Code Online (Sandbox Code Playgroud)
重新加载 .bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
用法
tildeIt command -option
Run Code Online (Sandbox Code Playgroud)