Как скопировать файл с именем файла, содержащим «:»?

У меня есть внешний USB-накопитель, где некоторые имена файлов содержат ":", например Screenshot-08-09-12 -08: 10: 45.png (Старые скриншоты). Я могу скопировать эти файлы на жесткий диск своего компьютера, но я не могу скопировать их обратно на внешний жесткий диск, так как он автоматически переименовывается приложением файлов. Команда cp в терминале возвращает ошибку с недопустимым аргументом.

Я использую этот диск в Ubuntu 20.10, а также в LinuxMint 20. Как я могу скопировать такой файл обратно на внешний жесткий диск без переименования?

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

Тип файла внешнего диска: NTFS (Тип раздела: NTFS / exFAT / HPFS)

0
задан 16 November 2020 в 21:43

3 ответа

Я не знаю, как файл был сохранен на жесткий диск в первую очередь как символ двоеточия (: ), зарезервированный в NTFS. Я полагаю, что при копировании файла в Ubuntu или Mint имя файла остается «как есть», так как они могут без проблем справиться с двоеточием в имени файла.

Если копирование их обратно на жесткий диск в формате NTFS работает в Mint, возможно, у вас есть «посредник» переводит имя файла так, чтобы оно было совместимо с NTFS. В соответствии с предложением этого вопроса StackOverflow вы можете попробовать использовать символы Unicode, совместимые с NTFS и визуально напоминающие двоеточие.

Если бы вы могли предоставить точное сообщение об ошибке, которое вы получаете при запуске cp , а также точную команду, вызывающую это, я, возможно, смогу дать дальнейшие указания.

В общем, попробуйте использовать другой символ Unicode вместо двоеточия, поскольку он «зарезервирован» в файловой системе NTFS.

0
ответ дан 3 January 2021 в 22:49

Я описываю, как это работает в Ubuntu, когда файловые системы источника и цели являются файловыми системами Linux, например ext4, которая является стандартной файловой системой Ubuntu. (Другие [не связанные с Linux] файловые системы могут вызвать проблемы.)

У меня работает копирование файлов с двоеточием в имени с использованием cp при цитировании имени файла в одинарных или двойных кавычках.

  • Пример: если вы хотите сохранить имя файла

     cp 'file: name' target-directory
     

    или

     cp "file: name" целевой-каталог
     
  • Пример: при желании вы можете изменить имя файла

     cp 'file: name' target-directory / filename
     

    и это может помочь, если целевая файловая система не принимает двоеточие в имени файла.


Редактировать 1:

Я могу подтвердить, что у меня работает запись файла с двоеточием в имени файла в файловая система NTFS. Это заставляет меня думать, что у вас проблемы либо с параметрами монтирования, либо с файловой системой.

  • Если проблема связана с параметрами монтирования (владение и / или разрешения), возможно эта ссылка может помочь.

  • Также возможно, что файловая система загрязнена (была закрыта без очистки буферов) или повреждена каким-либо другим образом. В таких случаях Linux часто по умолчанию монтирует только для чтения. Вы можете попытаться восстановить файловую систему, и файловые системы Microsoft должны быть восстановлены с помощью Windows.

Редактировать 2:

См. Также следующую ссылку, в которой спрашивается, как запретить определенные символы (например, двоеточие) в именах файлов, чтобы они корректно работают в Windows (это не то же самое, что Linux хранит и использует NTFS).

Заставить Linux запрещать двоеточия в именах файлов на разделах NTFS

0
ответ дан 3 January 2021 в 22:49
# Creating a mount-point
mkdir Test
# Creating a dummy file to be transferred to the NTFS-partition
touch file:test.txt
# Mounting the external drive on the mount-point
sudo mount -t ntfs -o utf8 /dev/sdc1 ./Test
# Copying file
cp file\:test.txt Test
1
ответ дан 3 January 2021 в 22:49

Другие вопросы по тегам:

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