在 centos Linux 中以递归方式清除文件的内容



我有许多网站的日志文件,结构像/var/www/domainname.com/log/access.log,我希望清除它们的内容。我需要找到一种在一个命令中做到这一点的方法,但我似乎没有这样做,我已经尝试过

find /var/www/ -type f -name "access.log" -exec cat /dev/null > access.log {} ;

但这实际上创建了一个新的访问.log文件复制所有网站的所有访问日志文件的内容。

您可以使用truncate命令,以便我们可以一次截断所有文件:

find /var/www/ -type f -name access.log -exec truncate -c -s 0 {} +
  • -c确保不会新创建任何文件
  • -s 0将文件大小设置为零
  • {} +确保一次性传递所有文件(最多 ARG_MAX(

看:

使用查找 - 格雷格的维基

怎么样:
find /var/www/ -type f -name "access.log" -exec rm {} ; -exec touch {} ;

相关内容

  • 没有找到相关文章

最新更新