Какую версию Вы используете? Вы, возможно, были поражены этой ошибкой, если версия, которую Вы установили, слишком стара для включения ее патча.
perl
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
(-i для предупреждения от замены файла)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
– jw013
20.03.2012, 16:13
Если вы используете IBM AIX, у вас не будет никакой команды RENAME
, поэтому для того, чтобы пакет удалить расширения файлов, вам придется использовать обычную систему Vanilla System v Unix :
for file in *.tif; do
mv $file `echo $file | sed 's/.tif$//'`;
done;
rename -- .oldext .newext *.oldext
Это заменяет старое расширение новым. Чтобы просто удалить расширение, вы можете явно передать пустую строку в качестве аргумента.
rename -- .gz.tmp '' *.gz.tmp
С помощью указанной выше команды все файлы с расширением .gz.tmp
в текущей папке будут переименованы в filename.gz
.
См. Статью: Linux: удаление расширений файлов для нескольких файлов для получения дополнительных сведений.
можем ли мы сделать это рекурсивным
for i in *.gz; do mv -i $i `basename $i.gz`; done
perl-rename 's/\.tif//' *.tif
Используйте -n
для пробного прогона.