У меня есть куча файлов на коробке Ubuntu, в именах которых есть разные символы, которые Windows не принимает (в основном «:» и «*», но, возможно, другие).
Какой самый простой способ переименовать их и перенести на компьютер с Windows? Можно заменить эти символы на что-то вроде «[двоеточие]» и «[звездочка]».
linux
rename
batch-rename
RomanSt
источник
источник
*
).:
это достаточно плохо. Называть документы после их содержимого полезно, и если название статьи заканчивается вопросом, то и имя файла.Ответы:
Взгляните на Glindra переименования и детоксикации .
Файловые утилиты Glindra могут быть установлены в Windows или Linux. Примеры очистки имен файлов в Windows:
карты, ведущие тире (дефисы) к подчеркиванию.
Свертывает пробелы.
Отображает проблемные символы, такие как * ?: [] "<> | () {}, чтобы подчеркнуть.
Выполняет те же операции очистки, что и -safe, и дополнительно:
отображает все 8-битные символы из верхней половины латинского 1 алфавита в разумные 7-битные резервные символы.
Сопоставляет символы одинарных кавычек '`´, чтобы подчеркнуть.
Источник: Исправление имен файлов Unix / Linux / POSIX: управляющие символы (например, Newline), начальные черты и другие проблемы
источник
G:\spc>rena.exe -safe -portable *.txt
выходы[FATAL-ERROR] Filename syntax error: aa:a.txt
rena '*.*' -portable
, и если вы хотите, чтобы это было рекурсивно, используйте что-то похожееrena '***/*.*' -portable
на Linux. И я верю, что переименование должно быть сделано в Linux, а не в Windows.Попробуйте Recuva .
Это единственная утилита Windows, которую я нашел, которая обрабатывает имена файлов, не относящиеся к Windows.
Включите Сканировать на наличие не удаленных файлов (для восстановления с поврежденных или переформатированных дисков) и сканируйте свою папку. При восстановлении включите Восстановить структуру папок . Recuva будет эффективно «копировать» весь каталог в другое место, одновременно «обезвреживая» недружественные имена файлов.
источник
Я считаю, что, не работая на Linux и ничего не тестируя, можно использовать однострочники, подобные приведенным ниже.
Чтобы изменить один символ:
И, наконец, удалить все не алфавитно-цифровые символы:
источник
<>:"/\|?*
Если ваши файлы уже находятся на томе NTFS, похоже, что запуск chkdisk из Windows «решает» проблему. К сожалению, похоже, что это происходит путем удаления оскорбительных файлов.
источник
Мне удалось с комбинацией первых двух ответов, плюс pyRenamer (GUI). Под Linux я использовал pyRenamer, чтобы свернуть пробелы в именах папок (каталогах) - заменив пробел ничем - так, чтобы другие программы (переименование Glindra) работали рекурсивно (можно было бы подчеркнуть подчеркивание). Из файлов я также извлек некоторые приемлемые для окна символы или слова, чтобы сэкономить место, и аналогично свернул пробелы в именах файлов. Затем я запустил rena, чтобы удалить символы, отличные от Windows, сохранил их на флэш-накопитель, а затем использовал Recuva для «восстановления» папки в Windows. Recuva указывает, является ли путь к файлу слишком длинным (и также удаляет не-Windows-символы). Я еще не нашел инструмент, который проверяет путь к именам файлов, чтобы узнать, не превышают ли они максимальный предел Windows 255 (или, скажем, 240, чтобы обеспечить некоторую свободу).
источник