11

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

Какой самый простой способ переименовать их и перенести на компьютер с Windows? Можно заменить эти символы на что-то вроде «[двоеточие]» и «[звездочка]».

5 ответов5

4

Попробуйте Recuva.

Это единственная утилита Windows, которую я нашел, которая обрабатывает имена файлов, не относящиеся к Windows.

Включите Сканировать на наличие не удаленных файлов (для восстановления с поврежденных или переформатированных дисков) и сканируйте свою папку. При восстановлении включите Восстановить структуру папок. Recuva будет эффективно "копировать" весь каталог в другое место, одновременно "обезвреживая" недружественные имена файлов.

3

Взгляните на переименование Glindra и детоксикации.

Файловые утилиты Glindra могут быть установлены в Windows или Linux. Примеры очистки имен файлов в Windows:

rena *.* -portable

rena *.* -safe
  • -безопасный
    Отображает начальные тире (дефисы) на подчеркивания.
    Свертывает пробелы.
    Отображает проблемные символы, такие как *?:[] "<> | () {}, чтобы подчеркнуть.
  • -portable
    Выполняет те же операции очистки, что и -safe, и дополнительно:
    Отображает все 8-битные символы из верхней половины латинского алфавита 1 на разумные 7-битные резервные символы.
    Сопоставляет символы одинарных кавычек '`´ для подчеркивания.

Источник: Исправление имен файлов Unix/Linux/POSIX: управляющие символы (например, Newline), начальные черты и другие проблемы

1

Я полагаю, что, не работая на Linux и ничего не тестируя, можно использовать однострочники, подобные приведенным ниже.

Чтобы изменить один символ:

find . -type f -exec rename 's/:/\[colon\]/g' {} +
find . -type f -exec rename 's/\*/\[asterisk\]/g' {} +

И, наконец, удалить все не алфавитно-цифровые символы:

find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +
0

Если ваши файлы уже находятся на томе NTFS, похоже, что запуск chkdisk из Windows "решает" проблему. К сожалению, похоже, что он делает это, удаляя оскорбительные файлы.

0

Мне удалось с комбинацией первых двух ответов, плюс pyRenamer (GUI). Под Linux я использовал pyRenamer, чтобы свернуть пробелы в именах папок (каталогах) - заменив пробел ничем - так, чтобы другие программы (Glindra переименовывать) работали рекурсивно (можно было поставить подчеркивание). Из файлов я также извлек некоторые приемлемые для окна символы или слова, чтобы сэкономить место, и аналогично свернул пробелы в именах файлов. Затем я запустил rena, чтобы убрать символы, отличные от Windows, сохранил их на флэш-накопитель, а затем использовал Recuva для «восстановления» папки в Windows. Recuva указывает, является ли путь к файлу слишком длинным (и также удаляет не-Windows-символы). Я еще не нашел инструмент, который проверяет путь к именам файлов, чтобы узнать, не превышают ли они максимальный предел Windows 255 (или, скажем, 240, чтобы обеспечить некоторую свободу действий).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .