假设我想要在或ls
中查看的输出。nano
tilde
我会做以下事情:
ls >> tmp
nano tmp
rm tmp
我不喜欢这个,因为它会创建一个转储文件,我有时会忘记删除它。有些人建议这样做:
ls | less
或者
ls | more
但我不能这样做:
ls | nano
那么如何解决这个问题呢?当涉及到巨大的终端输出(例如当前进程)时,我需要这个功能,之后我想进行搜索。
答案1
许多程序通常使用来表示标准输入或标准输出。因此,你可以在 nano 中使用它作为文件名来-
打开命令的屏幕输出,如下所示:-
ls | nano -
这仅在您的程序支持该约定时才有效。这包括终端上的nano
和。甚至图形文本编辑器也支持它。但是,或不支持它,而是会被指示创建一个名为 的常规文件。在其他情况下,您无法避免先创建一个常规中间文件。vi
gedit
pluma
mousepad
-
答案2
如果使用波浪号确实需要,你可以编写你的想法,
在你的.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
重新加载.bashrc
source ~/.bashrc
用法
tildeIt command -option
答案3
如果有的话vipe
,你可以这样做
ls | vipe >/dev/null
该程序vipe
(我认为代表 vi 管道或视图管道)读取标准输入,$EDITOR
在其上打开,然后将保存并退出时剩下的内容写入标准输出。
答案4
如果您正在使用bash
,您可以尝试一下tilde <( ls )
。
看流程替代在bash(1)
。