Это потому, что этим файлом управляет конкретное установленное приложение. Вы можете либо удалить это приложение, либо установить нужные параметры непосредственно через это приложение.
В моем случае (Минимальный сервер Linux centos7 )с такой же ситуацией, когда я получал # Generated by NetworkManager
в верхней части файла resolv.conf
, поэтому лучший способ изменить эту опцию — использовать команду
nmtui
. Вы можете редактировать серверы имен в этом инструменте, и когда вы меняете параметры networkmanager из этой утилиты, они будут автоматически применены к /etc/resolv.conf
после перезагрузки. Здесь вы можете найти дополнительную информацию .
Для фильтрации по имени используйте предикат -name
, который принимает шаблон подстановочных знаков, аналогичный используемому при подстановке оболочки:
find. -name '*_LOGS.txt' -type f -mtime +6 -exec rm -f {} +
Лучше поставить этот фильтр первым, так как он, как правило, дешевле, чем те, которые основаны на метаданных файла (, хотя некоторые find
реализации выполняют такое переупорядочение автоматически ). Таким образом, если файл исключен из-за того, что его имя не заканчивается на _LOGS.txt
, find
не нужно извлекать его метаданные.
Как и в глобах оболочки, *
соответствует любой последовательности символов. Обратите внимание, что в отличие от глобусов оболочки, нет специальной обработки файлов, имя которых начинается с.
(скрытых файлов ), поэтому они также будут включены. То же самое для файлов в каталогах, имя которых начинается с .
.
Также обратите внимание, что rm
может принимать более одного имени файла в качестве аргумента, поэтому вы можете использовать +
вместо ;
в качестве разделителя -exec
. Это также имеет то преимущество, что find
сообщает об ошибках с помощью rm
в своем коде выхода.
Также обратите внимание, что при переносе вам нужно указать по крайней мере один файл или каталог в качестве аргумента для find
, чтобы он знал, где искать.Некоторые реализации find
по умолчанию используют.
(текущий рабочий каталог ), если вы не указываете, где искать, но некоторые другие этого не делают.
При использовании zsh
вы также можете просто выполнить:
rm -f -- **/*_LOGS.txt(D.m+6)
Где .
является эквивалентом -type f
, m+6
для -mtime +6
и D
также считает скрытые файлы и файлы в скрытых каталогах, как это делает find
.
В отличие от некоторых find
реализаций, он по-прежнему сможет удалять файлы, имена которых содержат последовательность байтов, не образующих допустимых символов в локали. Однако он может не выполниться rm
, если существует очень большой список файлов для удаления (, но см. функцию zargs
или модуль zsh/files
, чтобы сделать встроенный rm
для обхода этого ).