解释":>"命令

Mar*_*era 4 unix bash sh

几年前我找到了这个命令,从那以后用它来清空文件.

但这真的有用吗?

:>

用过像

:> /server/logs/access_log

Web*_*ter 7

>是重定向运算符.:是一个内置的shell命令,相当于该true命令,它主要用作脚本中的占位符.

:> filename 将使您的文件为空.


Die*_*ano 7

在bash中,help :给你:

:: :
    No effect; the command does nothing.  A zero exit code is returned.
Run Code Online (Sandbox Code Playgroud)

值得注意的是,正如之前提到的那样,:通常取代真实的,就像在

while :
do
   date
   sleep 60
done
Run Code Online (Sandbox Code Playgroud)

但严格地说,:你的命令不需要它,你可以简单地写

> /server/logs/access_log
Run Code Online (Sandbox Code Playgroud)

为避免无意中截断重要文件,最好设置noclobber选项

set -o noclobber
Run Code Online (Sandbox Code Playgroud)

如果你试图这样做,它会吐

-bash: /server/logs/access_log: cannot overwrite existing file
Run Code Online (Sandbox Code Playgroud)

如果你想强迫它

>| /server/logs/access_log
Run Code Online (Sandbox Code Playgroud)