在centos Linux中递归清除文件内容

Has*_*hmi 1 linux truncate centos

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

find /var/www/ -type f -name "access.log" -exec cat /dev/null > access.log {} \;
Run Code Online (Sandbox Code Playgroud)

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

cod*_*ter 6

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

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

看到:

UsingFind - Greg的Wiki