Як я можу перейменувати багато файлів одночасно?


43

Мені потрібно перейменувати купу файлів, щоб виправити їх порядок сортування, тому мені потрібно вміти робити «пошук і заміну», щоб я міг одночасно замінювати шматки файлів.

Які інструменти я повинен використовувати? Я віддаю перевагу графічний інтерфейс, але рекомендація щодо інструмента командного рядка також буде чудовою.

Відповіді:


54

Є кілька, але я рекомендую gprename, Встановити gprename який є хорошим компромісом між зручністю та функціональністю.

Іншими інструментами є: перейменувати, krename Встановити krename , pyrenamer Встановіть піренамер , cuteRenamer, ...


6
pyRenamer зовсім не поганий.
skalka

6
Я часто використовую pyrenamer, а іноді і ім'я gprename, якщо зміни дуже легко виконуються в командному рядку. Найкраще в цих графічних інтерфейсах - це вбудована дія для попереднього перегляду. Це вбереже вам головний біль.
belacqua

4
+1 для gprename, тільки що спробував і зробив необхідне перейменування за 5 секунд
Пісу

Соромно, ні gprename, ні ім'я pyrename не можуть приймати список файлів для перейменування з командного рядка
artfulrobot

gprename чудово 14.04. Перейменував 300 папок на regex за 15 секунд
3рго

10

Мені дуже подобається qmv з renameutilsпакету. Це дозволяє використовувати улюблений текстовий редактор на основі терміналу для перейменування файлів. Я вважаю за краще посилатися на нього, -f doякий дає вам один стовпець (один рядок у файлі) з назви файлів. У поєднанні з потужністю Vim він надає всі інструменти, необхідні для масового редагування імен файлів.

http://www.nongnu.org/renameutils/



5

Якщо вам подобаються регулярні вирази оболонки та perl, я б рекомендував rename. Це так само просто, як його ім'я.



3

Якщо ви знайомі з Emacs, я думаю, що для цього завдання нічого не втомлює. Навіть якщо ви не користуєтесь Emacs, які часто можуть знайти Dired зручний інструмент.

sudo aptitude install emacs23-nox

Запустіть режим каталогів Emacs для каталогу:

emacs -nw path/to/dir/

Тепер увійдіть у режим редагування каталогу:

C-x C-q (тобто Ctrl + x, а потім Ctrl + q)

Тепер ви можете редагувати назви файлів, як-от редагування тексту, у кожному звичайному текстовому редакторі. Ви навіть можете замінити назви файлів за допомогою регулярних виразів (зауважте, що Emacs, на жаль, використовує інший синтаксис, ніж PCRE).

Наприклад, для перейменування файлів з лічильником (починаючи з 1):
M-x replace-regexp(тобто Alt + x, за яким слід вводити рядок "заміна-повторний вираз" в мінібуфер в нижній частині екрана).
Замінити регулярне вираження: 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)


2

Я схильний використовувати mmv , заснований на командному рядку і має дещо химерний синтаксис вираження, але, як правило, вирішує більшість моїх проблем.



0

У командному рядку також є можливість використовувати магію sed і shell:

ls *.c | sed "s#\(.*\)\.c#mv \0 \1.cpp#" | sh

1
Схоже, це не працює як надруковано. Ви також можете використовувати "#" або інший символ замість "\" як роздільники в прикладах для можливо більшої чіткості. наприклад, `ls .c | СЕД 's # ([AZ] ) \ C # \ 1.cpp #.' `(Цей приклад не робити перейменування, просто щоб відобразити нове ім'я файлу, для простоти)
belacqua

+1 Я вважаю це дуже приємним способом (який також працює у всіх дистрибутивах), не встановлюючи нічого. Але я, ймовірно, використовував би -dперемикач, lsщоб уникнути перерахування вмісту каталогів, який також може закінчуватися .c(більшість випадків не є проблемою, але все ж ..).
Левіт

0

У Windows є дійсно гарна програма для цієї програми під назвою Bulk Rename Utility. Ось URL: http://www.bulkrenameutility.co.uk/Main_Intro.php .

Існує версія Unicode Windows 98, яка є портативною. Я помістив це в папку моєї системи Linux (Mint Maya), і коли я запускаю його через Wine, це працює як шарм. Gui дуже простий у використанні та дуже гнучкий.


Я майже хочу запустити це у вині. Це набагато краще, ніж pyRenamer.
Teque5

0

Для мене pyRenamer працював найкраще. Ніщо (на жаль) не наближається до Total Commanders, побудувавши це інструмент перейменування. pyRenamer не інтегрується з Krusader, але враховуючи той факт, що ви не використовуєте інструменти для перейменування, які часто так чи інакше, pyRenamer - це дуже хороший варіант.


0

Це інструмент, який я використовую: rnm ( man page ) ( більше прикладів )

Деякі способи використання:

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...

Посилання на веб-сторінку переходить на neurobin.org/projects/softwares/unix/rnm і дає номер 404.
Муру,

@muru: хм, щось сталося зі сторінкою, оновив її до посилання man man page.
Джахід

0

Особисто я використовую Ant Renamer з Wine, тому що нічого, що я намагався (Métamorphose, PyRenamer, GPRename, KRename), є настільки потужним, простим в монтажі та простотою у використанні. І це все-таки FOSS, тому я не бачу проблеми.


0

Krename це графічний інтерфейс KDE для перейменування файлів, який зазвичай зустрічається у більшості менеджерів пакетів.

Ця відповідь стосується видалення провідних номерів, які можуть бути знайдені в музичних файлах, таких як mp3. Але Krenameмасове перейменування також.

  1. Завантажте вибрані файли чи папки. Krename завантажує всі файли у вибрану папку, просто натисніть, Openне вимагаючи індивідуального вибору всіх файлів.

  2. Перейдіть на Destinationвкладку, щоб перезаписати або скопіювати файли в іншу папку.

  3. Перейдіть на Filenameвкладку, потім на Advanced Filenameвкладку.

     Зображення "Розширене ім'я файлу", що показує параметри за замовчуванням.

  4. Почніть з видалення маркера $у Templateвікні. Зміна відбувається у Renamedвікні нижче. Імена файлів не відображаються, лише розширення файлів.

    3. Зображення показує, що імена файлів видалено, залишивши розширення файлу.

  5. Клацніть на Insert Part of Filename...і виберіть частини імені файлу, яке ви хочете зберегти. Ця операція буде включати всі файли, і зміни будуть очевидні у Renamedвікні нижче.

    4. Зображення "Вставити частину імені файлу ...", яке показує, як вибрати ім'я файлу, виділяючи бажані розділи.

  6. Клацніть OK. Файли перейменовані без провідних цифр.

    5. Показані кінцеві результати.

  7. Нарешті, натисніть Finishedу правому нижньому куті.


0

Новішою утилітою пакетного перейменування GUI, яка працює на Linux (вона також працює на Mac та Windows), є Inviska Rename .

введіть тут опис зображення

Окрім звичних функцій перейменування, таких як заміна частини тексту іншим текстом, вставлення чи видалення тексту, перейменування розширень файлів тощо, цей інструмент може перейменовувати папки, перейменовувати музику на основі тегів та перейменувати фотографії за допомогою інформації Exif. Він може навіть перейменувати групу за допомогою атрибутів файлів, таких як дата створення або модифікації.

Інші функції включають в себе попередній перегляд нових імен файлів і скасування перейменування партії, що я вважаю дуже корисним.

Джерело

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.