Я очищал музыкальную папку на внешнем диске и нашел каталог, который не могу удалить, что бы я ни пытался.
Если я положу его в мусорное ведро через графический интерфейс
Операция не может быть завершена, поскольку используется элемент «папка».
Если я использую, rm -rf
чтобы удалить его через терминал
$ rm -rf folder/
rm: folder/: Directory not empty
Если я использую, ls -la
чтобы проверить его содержание
$ ls -la
total 512
drwxrwxrwx 1 user staff 131072 Jan 3 2017 .
drwxrwxrwx 1 user staff 131072 Jan 3 2017 ..
Если я использую rm -i *
в папке
$ rm -i *
rm: 03 - Ēlusion.mp3: No such file or directory
Если я использую, sudo lsof +D folder/
чтобы проверить, открыты ли какие-либо файлы
При выходе из программы ничего не возвращается.
Если я использую Дисковую утилиту для восстановления (первой помощи) диска и тома
Проверка работоспособности прошла, поэтому ремонт не был начат.
Если я перезагружаю macOS
Проблема сохраняется.
Дополнительная информация:
Я могу переместить папку на диске, но не на другой диск.
Я могу переименовать папку.
ls -i *.mp3
возвращаетсяls: 03 - Ēlusion.mp3: No such file or directory
, так же, какrm -i *.mp3
.Файл не отображается в Finder, это сбивает с толку, независимо от того, какая проблема с отображением имени файла может возникнуть у Терминала (я всегда настраивал его на использование
Unicode - UTF-8
), я думаю, что в игре больше силы.
В ответ на вопросы, нет, ls -ib
ничего не возвращает.
$ ls -i
$ ls -ib
$ ls -laib
total 512
2762318 drwxrwxrwx 1 user staff 131072 Jan 3 2017 .
2685260 drwxrwxrwx 1 user staff 131072 Jan 3 2017 ..
Так что, видимо, в этом что-то есть, но он ls -la
не мог этого увидеть, в то время rm -i
как странно с именем файла?
get info
через контекстное меню GUI подтвердил, что в папке есть 1 элемент, но с нулевым байтом, и, конечно, не отображается в Finder.
Я не уверен, что делать на этом этапе. Помощь очень ценится!
(Использование 10.13.4 + ExFAT на внешнем диске)
источник
ls -b
Показывает ли файл? Если это так, вы можетеls -bi
получить индекс и следовать приведенному ниже ответу или просто скопировать имя файла в-b
выводе.ls -bi *.mp3
показать тот же результат, как показано в OP.Ответы:
Похоже, что проблема вызвана файлом с именем 03 - Ēlusion.mp3, расположенным в каталоге с именем папка .
Поскольку Terminal.app не может отображать диакритические метки в именах файлов - да, это так, но это выходит за рамки предоставления самого простого решения для вас - он скрывает свою ошибку, скрывая имя файла (что-то, что я до сих пор не слышал) ; возможно, изменения Высшей Сьерры в /.file, /.volfs и 64-битные inode? Подождите, не обращайте внимания; ваши изменения в вашем вопросе говорят мне, что я вас неправильно понял.) В любом случае, существование файла известно вместе с иронией утверждение Finder о том, что его не существует. Очевидно, это так. Вот как это изменить:
Сначала определите номер инода файла. В Terminal.app
cd
перейдите в каталог «папка» и введите следующую команду:ls -i *.mp3
Скопируйте числовую строку индекса, указанную в левом столбце ответа, который будет выглядеть примерно так:
12345678 03 - E ̄lusion.mp3
- и вставьте его в эту команду, которая переименует его в то, что терминал может правильно отобразить:
find . -inum 12345678 -exec mv {} deletemenow \;
- предоставив вам файл «deletemenow» в папке «folder», оба из которых вы можете утилизировать любым способом, который вам больше подходит.
источник
$ ls -i *.mp3
, она возвращаетсяls: 03 - Ēlusion.mp3: No such file or directory
.ls -i
в каталоге, чтобы предотвратить вмешательство расширения подстановочный знак оболочки?Мне потребовалось много времени, чтобы прийти к этому резюме, но я думаю, что это окончательный ответ.
Причина моей проблемы известна :
Исторически (не так давно, до 10.11 эры) OS X + HFS + применяет форму NFD для всех имен файлов , и вы получите только результат NFD от команд и системных вызовов.
Затем все начинает меняться, в 10.11 некоторые результаты системных вызовов нормализуются к NFC , что делает его встроенным в Windows и Linux, но за счет взлома некоторых программ, ожидающих NFD в OS X.
Но после появления macOS 10.13 + AFPS поведение снова меняется: Apple решает, что она хочет нормализовать NFD при отображении и системных вызовах , но оставить исходные имена файлов как есть (поэтому поддерживаются и NFC, и NFD, но если вы выберете имя файла в Finder или
ls
результат копирования в Terminal, вы получите форму NFD).Это все замечательно, пока вы не поместите файл с именем файла NFD на внешний диск с помощью exFAT (так как это единственный кросс-macOS / Windows-формат с поддержкой размера файла 4GB +): macOS 10.13 почему-то считает, что ваш файл должен быть в формате NFC, поэтому это прослушалось.
На самом деле, вот быстрый тест, у меня есть папка в Windows на моем диске exFAT с 3 файлами:
test.mp3
Ēlusion.mp3
(Ē
в NFC)03 - Ēlusion
(Ē
в НФД)(Вы можете скопировать точный Unicode здесь )
Когда я монтирую их на моем macOS, вот что я вижу:
и
ls -laib
результат:Как видите, файл NFC присутствует, но файл NFD отсутствует.
Даже если вы знаете о проблеме NFC / NFD в OS X , вы можете не ожидать, что внешний диск exFAT столкнется с этой проблемой противоположным образом (NFC в порядке, но NFD находится в тяжелом состоянии).
Но что могло заставить мой музыкальный файл использовать имя файла NFD?
Я мог бы скопировать файл через сетевой диск или TeamViewer, и это было бы хорошо, но exFAT вызывает эту ошибку в macOS.
Уроки:
источник
Error 36
веб-поиске и поиске чего-то вроде «переместить файлы туда и обратно Windows Mac Error 36» для получения дополнительной информации о разделении атрибутов файлов в системах, не являющихся HFS. Это (еще одна) известная проблема именования файлов в MacOS / OS X с момента появления Системы 10.6. Между нормализацией Unicode и разделением атрибутов dot_underscore вы столкнулись с двойной ошибкой. Я сомневаюсь, что команда dot_clean имела шанс.