Разве невозможно удалить / переместить файл с именем «␀» на Mac?

4

Когда я пытаюсь переместить, переименовать или удалить файл с именем в Finder я получаю это сообщение об ошибке:

Операция не может быть завершена, потому что произошла непредвиденная ошибка (код ошибки -50).

С mv, rm или же find -delete в терминале

 rm: /Library/␀: Invalid argument
 mv: rename /Library/␀ to /tmp/␀: Invalid argument
 find: -delete: unlink(/Library/␀): Invalid argument

Могу ли я переместить или удалить этот файл в Mac OS X или мне нужно использовать другую операционную систему?

Я даже пытался создать файл с этим именем в /tmp и он не ушел с 8 перезагрузок.

DisplayName
источник
Вы пытались использовать что-то кроме оболочки? Например. Питона os модуль?
BallpointBen

Ответы:

7

Вы можете попытаться удалить файл по его номеру inode. Список файлов в / Library с -i вариант

ls -il /Library

Первый столбец - это номер индекса файла. Тогда используйте find

find /Library -inum XXXXXXX -delete

где XXXXXX - номер индекса файла.

fd0
источник
Я не знаю, почему мой комментарий был удален, но он просто передает имя файла в unlink, давая мне ту же ошибку «Недопустимый аргумент».
DisplayName
4

Кажется, это проблема только для 10.11, поэтому удалить ее как минимум 10.11 невозможно, но вы можете удалить ее на любой версии OS X, кроме 10.11 (я пробовал 10.4 и 10.10, и я мог удалять файлы с этим символом ).

DisplayName
источник
Ошибка на стороне создания. В противном случае многие команды не будут работать в среде Unix. Например find -print0, xargs...
daniel Azuelos
0

В некоторых новых системах MacOS возникают проблемы с обработкой имен файлов, которые содержат символ «nul». Система интерпретирует «nul» как конец имени файла, поэтому не может найти файл. Вы можете попытаться загрузиться с другой системы или использовать режим Target Disk и подключить его к Mac с более старой системой MacOS (Mountain Lion и т. Д.). Удаление этого режима из режима восстановления через командную строку может сработать, или вы можете попробовать номер инода fd0. метод.

kouwei32
источник
Всегда будет индекс, чтобы удалить файл с проблемным именем файла. Вероятно, намного проще, чем перенести файловую систему на другую ОС.
bmike
-1
mkdir tmp; mv * tmp; cd tmp; mv [A-Z]* [a-z]* [1-3]* ..; rm *; cd ..; rmdir tmp
Guido Germano
источник
1
Добро пожаловать в Спроси по-другому и спасибо за ваш ответ. :) К сожалению, короткие ответы, подобные этому, не дают достаточно подробностей или контекста, чтобы помочь многим пользователям. Если это возможно, было бы хорошо, если бы вы могли добавить больше информации о том, что пользователь должен делать с вашим ответом? Кроме того, вы можете прочитать Как ответить советы по предоставлению ответов здесь.
Monomeeth
1
Как написано, это даже опасно, как второй mv Команда не перемещает все не проблемные файлы из tmp каталог.
nohillside