Adlı tiff dosyaları bir dizi var:
sw.001.tif
sw.002.tif
...
ve .tif
her bir dosyanın sonundaki kaldırmak istiyorum . Bunu rename
yapmak için komutu nasıl kullanabilirim ?
Adlı tiff dosyaları bir dizi var:
sw.001.tif
sw.002.tif
...
ve .tif
her bir dosyanın sonundaki kaldırmak istiyorum . Bunu rename
yapmak 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 ( rename
Debian'daki paket):
rename 's/\.tif$//' *.tif
util-linux
rename
(genellikle rename.ul
Debian'da Red Hat'ta bulunur):
rename -- .tif '' *.tif
(bu bir adlandırmak olacağını not blah.tiffany.tif
etmek 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 .
rename
geleneksel rename
komuta ile uyumsuz (ve çok daha sınırlı) olduğunu varsayar perl
.
.oldext
, uzantı (zorunlu foo.oldextasy.oldext
olarak 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