У меня есть несколько tiff-файлов с именами:
sw.001.tif
sw.002.tif
...
и я хочу удалить .tif
в конце каждого из файлов. Как я могу использовать rename
команду, чтобы сделать это?
решение1
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
)
решение2
Чтобы не переименовывать, можно сделать следующее:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i для предупреждения о замене файла)
решение3
rename -- .oldext .newext *.oldext
Это заменит старое расширение на новое. Чтобы просто удалить расширение, вы можете явно передать пустую строку в качестве аргумента.
rename -- .gz.tmp '' *.gz.tmp
С помощью указанной выше команды все файлы с .gz.tmp
расширением в текущей папке будут переименованы в filename.gz
.
См. статью:Linux: удалить расширения файлов для нескольких файловдля получения подробной информации.
решение4
perl-rename 's/\.tif//' *.tif
Использовать -n
для холостого хода.