У меня есть несколько файлов TIFF с именем:
sw.001.tif
sw.002.tif
...
и я хочу удалить .tif
в конце каждого из файлов. Как я могу использовать rename
команду, чтобы сделать это?
У меня есть несколько файлов TIFF с именем:
sw.001.tif
sw.002.tif
...
и я хочу удалить .tif
в конце каждого из файлов. Как я могу использовать rename
команду, чтобы сделать это?
Ответы:
perl
«s rename
(как правило , найти на Debian , где он также называется prename
), или этой производной ( rename
пакет на Debian):
rename 's/\.tif$//' *.tif
util-linux
rename
(как обычно в Red Hat, rename.ul
в Debian):
rename -- .tif '' *.tif
(обратите внимание, что это можно было бы переименовать blah.tiffany.tif
в blahfany.tif
)
Для не переименования вы можете сделать:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-и предупредить против замены файла)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
rename -- .oldext .newext *.oldext
Это заменяет старое расширение новым. Чтобы просто удалить расширение, вы можете явно передать пустую строку в качестве аргумента.
rename -- .gz.tmp '' *.gz.tmp
С помощью приведенной выше команды все файлы с .gz.tmp
расширением в текущей папке будут переименованы в filename.gz
.
Обратитесь к статье: Linux: удалите расширения файлов для нескольких файлов для деталей.
rename
несовместима (и намного более ограничена) с традиционной rename
командой from perl
.
.oldext
в имени файла, а не обязательно расширение ( foo.oldextasy.oldext
будет переименовано в footasy.oldext
).
мы можем сделать это рекурсивным
for i in *.gz; do mv -i $i `basename $i .gz`; done