как удалить все файлы, исключая определенные файлы [дубликат]

0
07.08.2018, 11:27
3 ответа

Как сказано в вопросе 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
1
28.01.2020, 02:42

Отходя от комментария @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 {} +
0
28.01.2020, 02:42

Попробуйте это,

Чтобы получить список файлов, отличных отhivemetastore.log,hiveserver2-report.json.tmp, hivemetastore-report.json.tmp:

find  /var/log/hive -type f ! -name "hivemetastore.log" ! -name "hiveserver2-report.json.tmp" ! -name "hivemetastore-report.json.tmp" -print

Чтобы удалить и получить список удаленных файлов:

find  /var/log/hive -type f ! -name "hivemetastore.log" ! -name "hiveserver2-report.json.tmp" ! -name "hivemetastore-report.json.tmp" -delete -print
0
28.01.2020, 02:42

Теги

Похожие вопросы