У меня есть несколько файлов 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