Как лучше всего удалить автоматически созданные файлы из папки, зная, что папка может содержать созданные вручную файлы, которые нельзя удалять? [закрыто]

Да вы должны обновить ядро, когда система попросила вас это сделать

  • Security Fixes: закрывают проблемы безопасности, которые были обнаружены. Вы всегда будете в большей безопасности с новым ядром.
  • Улучшения стабильности: это может улучшить стабильность системы (exp: крах системы при регулярном использовании).
  • Увеличение скорости Linux-машины и значительное повышение общей производительности.
  • Обновленные драйверы, поскольку новое ядро включает в себя последние версии драйверов для устройств с открытым исходным кодом.
2
19.08.2017, 08:20
1 ответ

Проблема здесь в том, что шаблон подстановки имен файлов в командной строке будет расширен оболочкой (, если он соответствует каким-либо именам в текущем каталоге )до вызова утилиты.

Это означает, что фактическая выполняемая команда может быть чем-то вроде

find. ! -name thing1-custom.conf thing2-custom.conf thing3-custom.conf -delete

Это можно увидеть, если включить трассировку с помощью set -xв командной строке перед вызовом команды. Используйте set +x, чтобы позже отключить трассировку.

Ваша команда также должна была дать вам одно из сообщений об ошибке unknown optionили paths must precede expressionв зависимости от вашей реализации утилиты find.

Здесь правильно цитировать шаблон из оболочки, как указал Майкл Гомер в комментариях (, он говорит, чтобы избежать *, но цитирование всего шаблона, ИМХО, выглядит красивее и имеет то же самое. эффект):

find. ! -name '*custom.conf' -delete

Таким образом, шаблон передается в findкак есть, и утилита самостоятельно выполняет сопоставление со всеми именами в текущем каталоге.

Я бы также добавил к этому -type f, чтобы мы были уверены, что будем работать только с обычными файлами.:

find. -type f ! -name '*custom.conf' -delete
1
27.01.2020, 22:18

Теги

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