Назад | Перейти на главную страницу

Linux: Как изменить расширение группы файлов?

У меня есть каталог, полный файлов с расширением .xxx. (Apple.xxx, Orange.xxx, Bannana.xxx)

Я хочу изменить их расширения на .yyy. (Apple.yyy, Orange.yyy, Bannana.yyy)

Какой самый быстрый способ сделать это с помощью основных команд оболочки?

Взгляните на команду переименования: rename .xxx .yyy *.xxx

 for i in *.xxx; do 
     mv "$i" "${i%.*}.yyy"
 done

Знак процента в "$ {i%. *}" Означает использование шарик шаблон, который стоит после знака процента, примените его к значению переменной i и удалите самое короткое возможное совпадение из хвоста этого значения. Это называется расширением параметров / переменных и имеет множество применений. Вы также можете сделать так, чтобы глобус совпадал как можно дольше, или сделать так, чтобы глобус совпадал с самого начала. Эта статья в Linux Journal все о расширении параметров.

Он заключен в двойные кавычки, поэтому, если в имени файла есть пробелы и переменная IFS установлена ​​на включение пробелов (норма), имя файла все равно будет передано в mv как один аргумент.

Установить ммв а затем сделайте это:

mmv -r "*.xxx" "#1.yyy"

Уже куча ответов, но добавлю свой.

for i in *.xxx; do
    mv "$i" "`basename $i .xxx`.yyy"
done