Adlı tiff dosyaları bir dizi var:
sw.001.tif
sw.002.tif
...
ve .tifher bir dosyanın sonundaki kaldırmak istiyorum . Bunu renameyapmak için komutu nasıl kullanabilirim ?
Adlı tiff dosyaları bir dizi var:
sw.001.tif
sw.002.tif
...
ve .tifher bir dosyanın sonundaki kaldırmak istiyorum . Bunu renameyapmak için komutu nasıl kullanabilirim ?
Yanıtlar:
perl's rename(tipik olarak Debian'da da denildiği yerde bulunur prename) veya bu türev ( renameDebian'daki paket):
rename 's/\.tif$//' *.tif
util-linux rename(genellikle rename.ulDebian'da Red Hat'ta bulunur):
rename -- .tif '' *.tif
(bu bir adlandırmak olacağını not blah.tiffany.tifetmek blahfany.tif)
Yeniden adlandırılmamış için şunları yapabilirsiniz:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i bir dosyayı değiştirmeye karşı uyarmak için)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
rename -- .oldext .newext *.oldext
Bu, eski uzantıyı yenisiyle değiştirir. Uzantıyı kaldırmak için boş bir dizeyi bağımsız değişken olarak açıkça geçirebilirsiniz.
rename -- .gz.tmp '' *.gz.tmp
Yukarıdaki komutla .gz.tmp, geçerli klasördeki uzantıya sahip tüm dosyalar yeniden adlandırılacaktır filename.gz.
Ayrıntılar için Linux: birden çok dosya için dosya uzantılarını kaldırma makalesine bakın .
renamegeleneksel renamekomuta ile uyumsuz (ve çok daha sınırlı) olduğunu varsayar perl.
.oldext, uzantı (zorunlu foo.oldextasy.oldextolarak yeniden adlandırılamaz footasy.oldext) yerine değiştirileceğini de unutmayın .
bunu tekrarlamalı yapabilir miyiz
for i in *.gz; do mv -i $i `basename $i .gz`; done