Bash

如何使用 find 命令清除所有文件的內容

  • October 1, 2020

是否有 使用 find 命令清除所有**“.log”文件內容的簡單步驟。**

目前我正在使用“echo -n > filename.log”我已經嘗試過 echo -n > /var/application-logs/*.log 但它不起作用..

有沒有更好的方法來清除多個文件的內容?

要清除所有find /var/application-logs -type f -name "*.log"找到的內容,請使用以下命令:

find /var/application-logs -type f -name "*.log" -exec tee {} \; </dev/null

如果您的 find 版本支持它,請使用tee+而不是\;對所有文件使用單次執行。或者,如果 shell glob 就足夠了:

tee /var/application-logs/*.log </dev/null

如果要阻止日誌增長,請使用logrotate. 您不應該僅僅因為它們已滿就盲目地擦除它們。許多不同的發行版都有很好的HOWTO

或者,考慮使用系統日誌伺服器,例如rsyslogsyslog-ng

引用自:https://serverfault.com/questions/433903