我有许多网站的日志文件,结构像/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 {} ;