Linux

如何刪除所有文件排除特定文件

  • August 7, 2018

在**/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' \)

連結execrm這些文件:

find . -type f ! \( -name 'hivemetastore.log' -o -name 'hiveserver2-report.json.tmp' -o -name 'hivemetastore-report.json.tmp' \) -exec rm -f {} +

引用自:https://unix.stackexchange.com/questions/461000