çatal yok:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Bir kabuk döngüsü kullandığınızda, mv
çatallar dosya başına bir kez. Perl'in rename
emri yoktur.
(Perl'in yeniden adlandırma komutunun bazı kısıtlamaları vardır, ancak bu özel durumda bu kısıtlamalar geçerli değildir.)
Daha rename
önce gösterilen komuta gelince , evet işe yarıyor, ama sonra iki farklı yeniden adlandırma türü ve benzeri arasındaki tüm karışıklığa sahipsiniz. Doğru olana sahipseniz, harika, ama değilse, bu da işe yarar.
Perl-rename komutuna sahip değilseniz ve yükleyemiyorsanız, bunu yapabilirsiniz:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Gördüğünüz gibi, bu üst yanıtta gösterilen aynı ikameyi kullanır. Elbette perl-rename'in diğer çanları ve ıslıkları var (yukarıda bahsedilen en büyük cevap -n
zaten var, o zaman var -0
, -f
vb.) Ve ne kadar çok ihtiyacınız olursa, bu şekilde kendi yerine yuvarlamak yerine bunu daha fazla yüklemelisiniz .
rename
. Bu Larry Duvar adlı olduğunu varsayalımrename
gelenrename
(ve IIRC Debian ve türevi de paketinprename
RedHat ikna sistemlerde). Çok kullanışlı bir araç.