Не удается удалить файл, но может удалить родительский каталог

Поэтому в основном я пытаюсь удалить файлы:

/var/lib/mysql/db/nomNomina2.* 

и когда я ищу их с локацией, я получаю следующий вывод:

 /var/lib/mysql/db/nomNomina2.MYD /var/lib/mysql/db/nomNomina2.MYI /var/lib/mysql/db/nomNomina2.frm 

но затем я пытаюсь

  $ rm -fv /var/lib/mysql/db/nomNomina2.frm 

Я не получаю выход, но файлы все еще отображаются при использовании локации.

Обратите внимание, что я могу создать и удалить файл с тем же именем файла в том же месте, но он будет отображаться при использовании локации, и я не смогу создать другую таблицу с тем же именем.

Любые идеи, что может быть причиной этого? файловая система беспорядок? как исправить?

  • Индикатор выполнения в updatedb
  • Как найти путь?
  • Как вы инвертируете команду «locate». Ex. Показать все, кроме X
  • «найти» для нечувствительных к регистру слов?
  • найти с цветом
  • Разница между локацией и mlocate
  • найти файл по его полному имени файла?
  • Как найти только исполняемые файлы, используя «locate»?
  • 2 Solutions collect form web for “Не удается удалить файл, но может удалить родительский каталог”

    locate не зависит от текущей, текущей информации о файлах, присутствующих в вашей системе. Информация кэшируется в базе данных.

    Также рассмотрите знаменитую линию со ссылкой:

    Это не работает! Должен ли я обвинять кеширование?

    Для получения актуальной информации о том, какие файлы / каталоги существуют на вашем поле прямо сейчас , используйте ls или find или stat или test -e filename && echo it is there или даже printf %s\\n * . Практически все, кроме locate , предоставит вам самую свежую информацию о вашей файловой системе.

    См. Также LESS=+/BUGS man locate который (в моей системе) читает частично:

     BUGS The locate program may fail to list some files that are present, or may list files that have been removed from the system. This is because locate only reports files that are present in the database... 

    Вы можете запустить updatedb , но, честно говоря, если вы точно знаете, где находятся файлы, и вы используете их для поиска … вы просто делаете это неправильно. locate указывает путь. Он ничего не говорит о существовании или отсутствии файлов на этом пути. Если вы уже знаете путь к файлу, вам не нужно locate , не так ли?

    Цель поиска – «быстро найти имена файлов», не обязательно точно или надежно.


    Примечание. Я не говорю «не используйте locate ». У него есть цель, когда вы не знаете, где в вашей системе может быть определенный файл. Но как только вы получите путь от locate , он выполнил свою задачу, и теперь вам нужно использовать другие инструменты для проверки / проверки / etc. файл, который вы нашли.

    locate не ищет файлы на диске, а ищет пути к файлам в базе данных. База данных – это файл, содержащий информацию о файлах и их пути в вашей системе.

    Таким образом, одним из ограничений команды «locate» является его зависимость от базы данных, которая может быть обновлена ​​другой утилитой «updatedb». Следовательно, чтобы получить последние и надежные результаты из команды «locate», база данных, на которой она работает, должна обновляться через регулярные промежутки времени.

    следовательно, после удаления файла вы должны проверить существование файла с помощью команды #find, которая ищет файл в режиме реального времени. #find / var / lib / mysql / db / -iname "nomNomina2. *"

    Interesting Posts

    в чем разница между использованием «одиночных кавычек» или нет в команде find

    Может ли tmux и screen генерировать переменные среды, которые могут использоваться PROMPT_COMMAND?

    Как добавить данные в буфер в сценарии оболочки?

    Подведение строк с общим полем

    Диагностика незапланированных остановок

    Как получить общее количество смонтированных файловых систем в Linux?

    Помните «локальную» историю bash в папке?

    Можно ли получить доступ к аппаратным средствам непосредственно из пользовательского пространства?

    Настройка сенсорной панели на Acer Aspire-VN7-791G с ​​Монетным двором Linux, изменения не принимаются

    Конфигурация Shorewall: провайдеры и LAN

    Отображение «Нет результатов» Когда команда AWK не имеет выхода

    Usb Stick как hdd для установки kali linux и использования его на macbook

    необходимо предоставить доступ на чтение для записи в папку и ее вложенные папки и каталоги для конкретного пользователя

    сопоставление sed шаблонов с удалением по строке

    Почему scp не работает, когда я запускаю его на удаленном сервере для копирования обратно на локальный компьютер?

    Linux и Unix - лучшая ОС в мире.