几年前我找到了这个命令,从那以后用它来清空文件。
但这是如何运作的?
:>
像
一样使用 :> /server/logs/access_log
答案 0 :(得分:7)
>
是重定向运算符。 :
是一个内置shell命令,相当于true
命令,它主要用作脚本中的占位符。
:> filename
会使您的文件为空。
答案 1 :(得分:7)
在bash中,help :
为您提供:
:: :
No effect; the command does nothing. A zero exit code is returned.
值得注意的是,正如前面提到的那样,:
通常取代了真实,如
while :
do
date
sleep 60
done
但严格地说,:
在你的命令中不需要它,你可以简单地写
> /server/logs/access_log
为避免无意中截断重要文件,最好设置noclobber选项
set -o noclobber
如果您尝试这样做,它会吐出
-bash: /server/logs/access_log: cannot overwrite existing file
如果你想强迫它
>| /server/logs/access_log
答案 2 :(得分:3)
在bash中存在:
“do-nothing”运算符(相当于WebMonster指出的true
),此命令实际上创建并截断大小为0的以下文件。
请注意,通常要创建一个不存在的空文件,可以使用touch
,但如果文件存在且有数据,则必须清空它。这是一种同时做两件事的方式。
答案 3 :(得分:0)
我假设你在unixoide操作系统上使用shell。通常是“>”命令将命令的输出发送到文件。
我不太确定“:”是什么,但似乎这部分是发送到你文件的“无”。