Одним из способов быстрого переименования файлов в Windows является
F2 > Rename > Tab (to next file) > Rename ...
Но в Ubuntu / Nautilus я не могу перейти к следующему файлу. Но будучи в Linux, я думаю, что должна быть альтернатива командной строки.
Однако иногда мне может потребоваться больший контроль над тем, как переименовывать определенные файлы. В этом случае, возможно, лучше иметь возможность перейти к следующему файлу
command-line
rename
Jiew Meng
источник
источник
Ответы:
Я использую
rename
все время. Это довольно просто, но, надеюсь, вы знаете основные регулярные выражения:Это заменит строку
SEARCH
сREPLACE
в каждом файле (то есть*
). В/g
означает глобальный, так что если у вас былаSEARCH_SEARCH.jpg
, она будет переименованаREPLACE_REPLACE.jpg
. Если бы у вас не было/g
, он бы сделал замену только один раз, и теперь называетсяREPLACE_SEARCH.jpg
. Если вы хотите, чтобы регистр не учитывался, добавьте/i
(это будет/gi
или/ig
в конце).С помощью регулярных выражений вы можете сделать намного больше.
Обратите внимание, что это
rename
командаprename
(aka Perlrename
), которая поддерживает полные регулярные выражения Perl. Есть еще один,rename
который использует шаблоны и не такой мощный.prename
Раньше по умолчанию устанавливался в Ubuntu (вместе с Perl), но теперь вам, возможно, придется сделать следующее:Вот несколько примеров:
Префикс
Добавить :
document.pdf
переименован вMyPrefix_document.pdf
Удалить :
Также вы можете удалить ненужные строки. Допустим, у вас было 20 файлов MP3, названных как,
CD RIP 01 Song.mp3
и вы хотели удалить часть «CD RIP», и вы хотели удалить ее из всех них одной командой.CD RIP 01 Song.mp3
в01 Song.mp3
Обратите внимание на дополнительный пробел
'^CD RIP '
, без пробела все файлы будут иметь пробел в качестве первого символа файла. Также обратите внимание, что это будет работать без^
символа, но будет соответствоватьCD RIP
в любой части имени файла. В^
гарантирует , что только удаляет символы , если они являются началом файла.Суффикс
Добавить :
document.pdf
переименован вdocument.pdf_MySuffix
Изменить :
изменится
Something.pdf
вSomething.doc
. (Причина обратной косой черты в том,.
что в регулярном выражении используется подстановочный знак, поэтому он.pdf
совпадает,qPDF
тогда как совпадает\.pdf
только с точной строкой.pdf
. Также очень важно отметить, что если вы не знакомы с BASH, вы должны ставить обратную косую черту в одиночных кавычках! Вы не можете опускать кавычки или используйте двойные кавычки, или bash попытается перевести их. Для bash\.
и"\."
равно.
. (Но используются двойные кавычки и обратные слеши, например, "\ n" для новой строки, но так"\."
как не является допустимой обратной escape-последовательностью, она переводится в.
)На самом деле, вы можете даже заключить части строки в кавычки вместо целых:
's/Search/Replace/g'
то же самое, чтоs/'Search'/'Replace'/g
иs/Search/Replace/g
в BASH. Вы просто должны быть осторожны со специальными символами (и пробелами).Я предлагаю использовать
-n
опцию, когда вы не уверены, что у вас есть правильные регулярные выражения. Он показывает, что будет переименовано, а затем завершится, не делая этого. Например:Это перечислит все изменения, которые он сделал бы, если бы вы не поставили
-n
флаг там. Если все выглядит хорошо, нажмите, Upчтобы вернуться, затем сотрите-n
и нажмите Enter(или замените его,-v
чтобы вывести все сделанные изменения).Примечание . Версии Ubuntu выше 17.04 не поставляются
rename
по умолчанию, однако они все еще доступны в репозиториях. Используйтеsudo apt install rename
для установкиисточник
rename
команде, это то, что я сделал, чтобы добавить:for f in *; do mv -v "$f" "prependThis$f"; done
(?:\.[0-9]{3})$
в своем шаблоне, он будет соответствовать всем 3-значным расширениям файлов в пассивной группе. Пример:rename s/^my_favorite_movie.avi(?:\.[0-9]{3})$/random_movie.avi/ *
. Взгляните на этот шпаргалку регулярных выражений .Попробуй пиренамер .
Он не интегрирован с nautilus, но он выполняет свою работу. Вот обзор.
Thunar (часть XFCE) также имеет переименователь, который можно запускать отдельно.
источник
Кажется, на панели запуска есть проект, который называется nautilus-renamer . Вы можете установить его, запустив
make install
после того, как загрузите скрипт и распакуете его. Кажется, у него есть некоторые функциональные возможности, или, если вы знаете, что программирование может быть, вы можете просто улучшить его для своих нужд, так как это всего лишь скрипт на python.источник
В командной строке, чтобы переименовать один файл, команда просто
Если вы хотите сделать это в пакетном режиме, вы, вероятно, захотите сделать это с помощью сценария. Если вы предоставите более подробную информацию, я или кто-то другой, возможно, подберу один для вас. Тем не менее, скрипт для добавления материала в файл может выглядеть так:
В зависимости от того, как именно вам нужно переименовать вещи, это, вероятно, будет изменено, например, если у вас есть конкретные правила переименования, которым нужно следовать. (Лично я сделал бы это с помощью сценария Perl, поскольку мой bash-foo не так уж и хорош, но это только я.)
Обратите внимание, что я получил разделение имени файла и расширения от ранее заданного вопроса .
источник
Если вы хотите сделать это без командной строки, аналогично тому, что вы делали в Windows, используйте клавишу со стрелкой вправо вместо клавиши табуляции . Это выберет следующий файл, как вкладка в Windows.
источник
Не совсем такой же вопрос, как Как переименовать много файлов одновременно? но я собираюсь предложить ту же программу, которую я предложил в этом ответе: qmv .
qmv - это удобный инструмент из пакета renameutils. Это позволяет вам использовать ваш любимый текстовый редактор для переименования файлов. В сочетании с мощью vim у вас есть отличная утилита переименования.
Я обычно вызываю это как
qmv -f do
в директории, где я хочу переименовать группу файлов. Или если я хочу переименовать рекурсивноqmv -R -f do
.Всякий раз, когда мне нужно переименовать несколько файлов, я всегда использую qmv (и vim).
http://www.nongnu.org/renameutils/
источник
Если единственной подходящей опцией является переименование файлов вручную, отличный способ сделать это - использовать
vidir
(вmoreutils
пакете):Примеры
Переименование файлов выборочно
Содержание текущего рабочего каталога:
Выполните
vidir
, переименуйте имена файлов в строках, содержащих имена файлов, которые вы хотите переименовать; нажмите CTRL+ Oи CTRL+ X:Выборочное переключение имен файлов
Содержание текущего рабочего каталога:
Содержимое файлов текущего рабочего каталога:
Выполните
vidir
, переключите числа в строках, содержащих имена файлов, которые вы хотите переключить; нажмите CTRL+ Oи CTRL+ X:Удаление файлов выборочно
Содержание текущего рабочего каталога:
Запустите
vidir
, удалите строки, содержащие файлы, которые вы хотите удалить; нажмите CTRL+ Oи CTRL+ X:источник
Я использую кренаме. Это приложение с графическим интерфейсом. Он мог читать теги mp3 и так далее.
Он существует как отдельное приложение, а также как часть Krusader.
Также есть
rename
скрипт, который является частью стандартной установки perl (возможно, он установлен). Проверьте это сman rename
.источник