Как я могу переименовать много файлов одновременно?
Мне нужно переименовать кучу файлов, чтобы исправить их порядок сортировки, поэтому мне нужно сделать что-то вроде «найти и заменить», чтобы я мог заменять куски имен файлов за раз.
Какие инструменты следует использовать? Я предпочитаю GUI, но рекомендация инструмента командной строки также будет в порядке.
14 ответов
Есть несколько, но я рекомендую gprename
что является хорошим компромиссом между удобством использования и функциональностью.
Другие инструменты: rename, krename
, pyrenamer
, cuteRenamer, ...
Мне действительно нравится qmv из пакета renameutils
. Он позволяет использовать ваш любимый текстовый редактор на основе терминала для переименования файлов. Я предпочитаю вызывать его с помощью -f do
, который дает вам один столбец (по одной строке на файл) с именами файлов. В сочетании с мощью Vim он предоставляет вам все инструменты, необходимые для массового редактирования имени файла.
Metamorphose
https://github.com/metamorphose
может быть немного сложнее в обращении, но действительно мощный!
Если вам нравятся регулярные выражения оболочки и perl, я бы рекомендовал rename
. Это так же просто, как и имя.
Файловый менеджер thunar - это графический интерфейс с опцией переименования большого объема
http://thunar.xfce.org/pwiki/documentation/bulk_renamer
он не является стандартным для Gnome, но может быть установлен через программный центр
Если вы знакомы с Emacs, я думаю, что ничто не сравнится с Dired для этой задачи. Даже если вы не используете Emacs, что часто вы можете найти Dired удобный инструмент.
sudo aptitude install emacs23-nox
Запустить режим Emacs Dired для каталога:
emacs -nw path/to/dir/
Теперь войдите в режим редактирования каталога:
C-x C-q
(это Ctrl + x, за которым следует Ctrl + q)
Теперь вы можете редактировать имена файлов, такие как редактирование текста в каждом текстовом редакторе. Вы даже можете заменить имена файлов, используя регулярные выражения (обратите внимание, что, к сожалению, Emacs использует другой синтаксис, чем PCRE).
Например, чтобы переименовать файлы с помощью счетчика (начиная с 1): M-x replace-regexp
(это Alt + x, за которым следует строка «replace-regexp», введенная в минибуфер в нижней части экрана).
Заменить регулярное выражение: DSCN\([0-9]+\).JPG
Заменить на: \,(format "P%04d.jpg" (1 + \#))
Повторное использование счетчика в имени файла: M-x replace-regexp
Заменить регулярное выражение: DSCN\([0-9]+\).JPG
Заменить на: \,(format "P%04d.jpg" (string-to-number \1))
По завершении введите:
C-c C-c
(это Ctrl + c, за которым следует Ctrl + c)
Или, наоборот, нажмите следующую последовательность, чтобы прервать изменения:
C-c Esc
(это Ctrl + c, а затем Esc)
Если вы используете Nautilus и знаете, как работают Nautilus Scripts, вы можете использовать nautilus-renamer .
В командной строке есть также возможность использовать magic sed и shell:
ls *.c | sed "s#\(.*\)\.c#mv \0 \1.cpp#" | sh
В Windows есть действительно хорошая программа для этой утилиты Bulk Rename. Вот URL: http://www.bulkrenameutility.co.uk/Main_Intro.php.
Существует версия Unicode для Windows 98, переносимая. Я помещаю это в папку на моей системе Linux (Mint Maya), и когда я запускаю ее через Wine, это работает как шарм. Gui очень прост в использовании и очень гибкий.
Для меня pyRenamer работал лучше всего. Ничто (к сожалению) не приближается к Total Commander, построило инструмент переименования. pyRenamer не интегрируется с Krusader, но, учитывая тот факт, что вы не используете инструменты переименования, которые часто так или иначе, pyRenamer - очень хороший вариант.
Это инструмент, который я использую: rnm ( справочная страница ) ( несколько примеров )
Некоторое использование:
rnm file-name -ns new-filename # single file
rnm ./* -ns '/n//i/' # files will be sorted and indexed.
rnm ./* -rs '/search/new/g' # 'search' in filenames will be replaced with 'new'
rnm ./* -ns '/fn//i/' -ss 'search' # only files/directories which contain 'search' in their name will be indexed (renamed).
rnm ./* -ns '/fn//id/' -fo # file only mode, directories will be ignored.
rnm ./* -ns '/fn//id/' -fo -dp -1 # recursive to subdirectories all the way.
etc...
Лично я использую Ant Renamer с Wine, потому что ничего не пробовал (Métamorphose, PyRenamer , GPRename, KRename) настолько же прост в установке и прост в использовании. И это все еще FOSS, поэтому я не вижу проблемы.
Krename
- это графический интерфейс KDE для переименования файлов, обычно встречающийся в большинстве менеджеров пакетов.
Этот ответ применяется к удалению ведущих номеров, которые могут быть найдены в музыкальных файлах, таких как mp3. Но Krename
действительно переименовывает маску.
-
Загрузите выбранные файлы или папку. Krename загружает все файлы в выбранной папке, просто нажмите Open , не имея индивидуального выбора всех файлов.
-
Перейдите на вкладку
Destination
, чтобы перезаписать или скопировать файлы в другую папку. -
Перейдите на вкладку
Filename
, затем вAdvanced Filename
. -
Начните с удаления токена
$
вTemplate
. Изменение происходит в окнеRenamed
ниже. Нет имен файлов, только расширения файлов. -
Нажмите Вставить часть имени файла ... и выберите части имени файла, который вы хотите сохранить. Эта операция будет включать все файлы, и изменения будут очевидны в окне
Renamed
ниже. -
Нажмите OK . Файлы переименовываются без ведущих номеров.
-
Наконец, нажмите Готово в правом нижнем углу.