bash - 这个脚本如何在 Ubuntu 中工作?

标签 bash shell ubuntu

我通过使用本指南开始学习 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 仍然包含所有文件。

最佳答案

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

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

由于>是将标准输出重定向到文件(此处为 messageswtmp )的运算符,您将看到:

  • /var/log/messages/var/log/wtmp如果这里不存在,现在将存在
  • 它们的大小为 0 字节。
  • 关于bash - 这个脚本如何在 Ubuntu 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25452440/

    相关文章:

    bash - Git prepare-commit-msg 钩子(Hook)没有得到任何参数

    bash - 如何按外观顺序打印唯一值?

    bash - 如何使用 bash 脚本检查当前的 Web 服务器是 NGINX 还是 Apache?

    ubuntu - 无法使用 'external tools' 功能从 gedit 执行 PHP

    windows - 在 Windows 上的 Ubuntu 上的 Bash 上升级 python 版本?

    ubuntu - 我如何运行 cron 并检查当前正在运行的 cron

    linux - 如何删除从头开始直到达到特定模式的所有行(最后一行除外)

    linux - 将时间戳添加到 shell 脚本的 cat 输出

    linux - Flyway 连接到 Linux 上的数据库集群

    linux - 错误 : While loop in bash shell script