Как скопировать в Линуксе файлы с Ext4 на FAT32 с автоматическим переименованием запрещённых символов?
Пытаюсь скопировать множество файлов с Ext4 на FAT32. Процесс спотыкается о каждый файл содержащий в своём имени двоеточие, знак вопроса и ещё десяток запрещённых символов. А иногда имя файла оказывается просто слишком длинным. Есть какие-то скрипты, позволяюшие это всё рекурсивно переименовать без изобретения своего велосипеда?
Usage:
rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr
[ files ]
Options:
-v, -verbose
Verbose: print names of files successfully renamed.
-n, -nono
No action: print names of files to be renamed, but don't rename.
-f, -force
Over write: allow existing files to be over-written.
-h, -help
Help: print SYNOPSIS and OPTIONS.
-m, -man
Manual: print manual page.
-V, -version
Version: show version number.
-e Expression: code to act on files name.
May be repeated to build up code (like "perl -e"). If no -e, the
first argument is used as code.
-E Statement: code to act on files name, as -e but terminated by
';'.
пример
touch 'a:b'
rename -e 's/:/_/' 'a:b'
s -l a_b
-rw-rw-r-- 1 sergueik sergueik 0 Jun 28 16:08 a_b
man rename
RENAME(1p) User Contributed Perl Documentation RENAME(1p)
NAME
rename - renames multiple files
SYNOPSIS
rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr
[ files ]
DESCRIPTION
"rename" renames the filenames supplied according to the rule specified
as the first argument. The perlexpr argument is a Perl expression
which is expected to modify ...
если помогло - я положу в ответы вы отметите решением
Нет, это не решение. Велосипеды строить я и сам умею. Дальше начинаются:
- файлы с проблемами в имени, на них всё поломается
- запрещённых символов больше, чем чтосто двоеточие
- рекурсия по директориям
- слишком длинные пути и имена файлов
- и ещё куча всего, обо что оно споткнётся.
0xC0CAC01A, rename часть систымы не велосипед
кстати
в man rename описано про длинные и нежелательные
регекспы пишите (учитесь если надо сначала научиться)