Назад | Перейти на главную страницу

Неверный аргумент при копировании файлов с? в имени файла в OS X

Я пытаюсь скопировать файлы из общего ресурса AFP в общий ресурс SMB.

Несколько файлов на общей папке AFP имеют ? во имя. Если я попытаюсь скопировать их, я получу неверный аргумент ».

Я не знаю, как файлы получили ? в названии в первую очередь.

Вот пример:

user$ cp tes?t /mnt/share/
cp: tes?t: invalid argument

Я попытался переименовать файл, но получаю сообщение об ошибке «Ресурс занят».

Что я могу сделать, чтобы скопировать файлы?

Выйдите из маски вопроса с помощью обратной косой черты:

$ cp tes\?t /mnt/share/

В ? символы представляют собой нераспознанные символы.

Скорее всего, проблема здесь в том, что AFP использует имена файлов UTF-8, но вы не вошли в систему, которая смонтировала общий ресурс AFP с использованием локали UTF-8. Если это Linux, вы можете проверить свою локаль, используя locale команда.

Если вы обнаружите, что он не использует языковой стандарт UTF-8, вы можете временно изменить языковой стандарт, например:

export LC_ALL="en_US.UTF-8"

Удаляет ? опция? Это недопустимый символ для файла или имени пути в NTFS-совместимых файловых системах, поскольку на самом деле это односимвольный подстановочный знак.

В resource busy ошибка, вероятно, является результатом ? интерпретируется как подстановочный знак, и файловая система пытается получить доступ ко всем возможным недопустимым именам файлов, которые, по ее мнению, могут означать.

Я уверен, что вам придется получить доступ к файлам из файловой системы, которая не учитывает ? недопустимый символ (допустим ли он на Mac?) для замены ? с действующим.