/ dev / null在shell脚本中的含义是什么?

Modified on: Sun, 10 Jun 2018 00:42:53 +0800

我已经开始使用本指南学习bash脚本了:http://www.tldp.org /LDP/abs/abs-guide.pdf

但是我遇到了第一个脚本:

cd /var/log
cat /dev/null > messages
cat /dev/null > wtmp
echo "Log files cleaned up."

第2行和第3行在Ubuntu中做了什么(我理解cat)?它仅适用于其他Linux发行版吗?以root身份运行此脚本后,我得到的输出是Log files cleaned up./var/log仍然包含所有文件。

最佳答案

cat会将cat之后的文件内容列入标准输出,>将其发送到文件messageswtmp其中>表示首先删除文件的所有内容并且>>将意味着添加到当前文件。在这种情况下,您使用>所以文件最终会变空。

现在对于踢球者:/dev/null是一个向>后面的2个文件发送'nothing'的设备。

有理由这样做:文件不会从系统中删除。如果您rm然后执行touch messages,那么权限可能是错误的,如果只是在rm之后,某些东西会想要写入文件它会消失并出错。根据软件的创建方式,它可能会崩溃。

作者:,Rinzwind

相关问答

添加新评论