【问题标题】:How would this script work in Ubuntu?这个脚本如何在 Ubuntu 中工作?
【发布时间】:2014-08-22 17:22:14
【问题描述】:

我开始使用本指南学习 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 身份运行此脚本后,我得到的输出是已清理的日志文件。但是 /var/log 仍然包含所有文件。

【问题讨论】:

  • 文件没有消失,但它们的内容是。 ls -l /var/log 你应该会看到这两个日志的大小为 0 字节。
  • cat /dev/null 从伪文件 bitbucket 中读取并通过> 输出重定向将其写入日志文件,将它们留空。这并不特定于任何发行版。

标签: bash shell ubuntu


【解决方案1】:

/dev/null是一个特殊的文件,可以用来重定向你不想要的输出。

至于阅读它,即cat /dev/null,它只是不打印任何内容,因为它就像一个空文件。

由于> 是一个将标准输出重定向到文件(这里是messages 和wtmp)的运算符,你会看到:

  • /var/log/messages 和 /var/log/wtmp 如果不存在,现在将存在
  • 它们的大小为 0 字节。

【讨论】:

  • 实际上,这两行最重要的(如果你不知道的话也是很危险的)是,如果文件存在,它们会截断文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多