Linux
如何刪除所有文件排除特定文件
在**/var/log/hive**下我們有很多日誌文件
我們要刪除所有文件,不包括以下不應刪除的文件
hivemetastore.log hiveserver2-report.json.tmp hivemetastore-report.json.tmp
正如 Kamaraj 提到的問題 153862 中所述,使用 find。只需使用多個條目
! -name
:$ ls hivemetastore.log hivemetastore-report.json.tmp hiveserver2-report.json.tmp 1 2 3 4 $ find . ! -name 'hivemetastore.log' ! -name 'hivemetastore-report.json.tmp' ! -name 'hiveserver2-report.json.tmp' -type f -exec rm -f {} + $ ls hivemetastore.log hivemetastore-report.json.tmp hiveserver2-report.json.tmp
離開@Kamaraj 的評論 - 您可以使用開關
find
查找多個文件-o
,然後將其取反並使用-exec
其余rm
文件。列出除以下文件之外的所有文件:
find . -type f ! \( -name 'hivemetastore.log' -o -name 'hiveserver2-report.json.tmp' -o -name 'hivemetastore-report.json.tmp' \)
連結
exec
到rm
這些文件:find . -type f ! \( -name 'hivemetastore.log' -o -name 'hiveserver2-report.json.tmp' -o -name 'hivemetastore-report.json.tmp' \) -exec rm -f {} +