4

У меня есть каталог (пользователь Linux) с несколькими файлами, которые содержат добавленные [!] в конце каждого имени файла, чтобы каждый файл читался как:

  • фу что-то [!]. zip
  • бар что-то [!]. почтовый индекс
  • helloworld [!]. zip
  • и т.п.

Какой самый быстрый способ переименовать их, чтобы удалить окончание [!] комбинация символов из этих имен файлов?

2 ответа2

4

Вы можете использовать инструмент rename , как это

rename 's/\ \[\!\]//' *.zip

Я рекомендую сначала добавить ключ -n , который заставляет rename просто показывать, что он будет делать, но не переименовывать какие-либо файлы.

rename -n 's/\ \[\!\]//' *.zip

Обратите внимание, что это удалит только первый случай появления [!] в имени файла, только если ему предшествует пробел, и независимо от того, находится ли он в конце имени файла или нет.


основной синтаксис rename:

rename 's/from/to/' filenames

заменит from с to во всех именах файлов.

вот подробное объяснение: https://www.computerhope.com/unix/rename.htm


обратите внимание, что есть две команды rename : одна из пакета util-linux и одна из пакета perl. команда, на которую я ссылаюсь выше, является вариантом perl. вариант perl гораздо более популярен и полезен. обычно, когда люди говорят о rename они имеют в виду вариант perl.

в debian (и, следовательно, в ubuntu) rename по умолчанию является вариантом perl. https://stackoverflow.com/questions/22577767/get-the-perl-rename-utility-instead-of-the-built-in-rename

в arch linux rename - это вариант util-linux, а perl-rename - вариант perl. https://bbs.archlinux.org/viewtopic.php?id=85128

вот как вы можете увидеть, какую версию вы используете:

$ rename --version
rename from util-linux 2.30.1
$ perl-rename --version
perl-rename 1.9
1

Самый простой способ - использовать файловый менеджер Krusader и инструмент Multi Rename.

Это позволит вам переименовывать несколько файлов, даже повторяя структуру каталогов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .