Как удалить файл с несколькими, двоеточие входит в систему свое имя?

Cygwin основан на Linux, таким образом, его утилиты прибывают из тех же пакетов как на Linux:

3
07.05.2014, 00:57
3 ответа

Имеет значение очень, что файл находится на разделе NTFS.

: знак не является специальным символом в большинстве систем Unix, и в особенности не на Linux (только / является особенным). Это не имеет никакого значения для ядра (некоторые приложения действительно дают ему специальное значение, хотя, таким образом, лучше не использовать его). В большинстве файловых систем Unix, включая обычный ext2/ext3/ext4 Linux, можно использовать : в имени файла точно так же, как любой другой символ.

NTFS имеет более строгий (но дополнительный) правила, потому что он прибывает из мира Windows. В Windows, : не позволяется в именах файлов (или скорее это позволяется на уровне ядра, но не поддерживается большинством приложений, включая оболочки по умолчанию). NTFS-3G драйвера NTFS с открытым исходным кодом пытается препятствовать тому, чтобы Вы создали имена файлов с : в нем, и может быть перепутан, если это находит существующее недопустимое имя файла.

Руководство NTFS-3g указывает это

это всегда создает новые файлы в пространстве имен POSIX по максимальным причинам мобильности и совместимости. Это означает, что имена файлов чувствительны к регистру, и кроме всех символов позволяют '/' и '\0'. Это совершенно законно в Windows, хотя некоторое приложение может запутаться.

Удостоверьтесь, что Вы используете последнюю версию ntfs-3g драйвера, и что файловая система не смонтирована с windows_names опция.

5
27.01.2020, 21:14
  • 1
    В данный момент я делаю резервное копирование с сервера, ноутбука и рабочего стола к внешнему жесткому диску. Когда это закончится, я смонтирую его в другой машине или использовании живого CD Ubuntu 10.04 или монтирования вручную и изменения параметров монтирования. –  ceochronos 08.07.2012, 02:50

Когда Вы говорите, что то же применяется при переименовании сделайте Вы подразумеваете, что не можете переименовать их, или Вам удается переименовать их, но затем у Вас есть та же проблема при удалении (вероятно, не, я предполагаю).

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

 rm -i Mail*essag**.gz

-i приведет к Вам запрашиваемый перед удалением, таким образом, можно проверить, чтобы удостовериться, что Вы только удаляете файлы (файлы), которые Вы хотите.

Хотя я подозреваю, что это - проблема с полномочиями, или файловая система, а не характеристики имени файла. Или возможно признак некоторого отказа оборудования.

1
27.01.2020, 21:14
  • 1
    я не могу переименовать файлы. Я получаю ту же ошибку. mv: cannot stat Mail::Message::Field::Full.3pm.gz': Input/output error –  ceochronos 08.07.2012, 01:51
  • 2
    @ceochronos Может Вы пробовать подстановочный знак -i? Хотя я подозреваю, что это - проблема с файловой системой полномочий/монтировать. –  Levon 08.07.2012, 01:52
  • 3
    rm -i Mail*essag**.gz производит строку на файл, который соответствует ... rm: cannot remove Почта:: сообщение:: Поле:: полный 3pm.gz': ошибка ввода/вывода...' –  ceochronos 08.07.2012, 02:08
  • 4
    @ceochronos.. хорошо, ну, в общем, то, что у Вас нет проблем с другими файлами, заставляет меня думать, что аппаратные средства не являются проблемой, поэтому возможно, полномочия с этими конкретными файлами в отношении другой файловой системы. Из идей в этой точке.. но я буду следовать за потоком для решений. –  Levon 08.07.2012, 02:12

После прочтения весь назад и вперед на этом, я подозреваю, что файловая система NTFS была повреждена.

Я рекомендую:

  1. Начальная загрузка в Windows
  2. Выполнение полной проверки файловой системы (инструменты Linux еще не, действительно достаточны к этой задаче),
  3. Начальная загрузка назад в Linux и попробовать еще раз.
0
27.01.2020, 21:14

Теги

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