không có dĩa:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Khi bạn sử dụng vòng lặp shell, các mvdĩa một lần cho mỗi tệp. Perl củarenameLệnh thì không.
(Lệnh đổi tên của Perl có một số hạn chế, nhưng trong trường hợp cụ thể này, những hạn chế đó không được áp dụng.)
Đối với renamelệnh được hiển thị trước đó, có, nó hoạt động, nhưng sau đó bạn có tất cả sự nhầm lẫn giữa hai loại đổi tên khác nhau và vân vân. Nếu bạn có đúng, tuyệt vời, nhưng nếu không, điều này cũng hoạt động.
Nếu bạn không có lệnh perl-rename và không thể cài đặt nó, bạn có thể làm điều này:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Như bạn có thể thấy, điều này sử dụng cùng một sự thay thế được hiển thị trong câu trả lời hàng đầu. Tất nhiên perl-đổi tên có chuông và còi khác (câu trả lời đầu đã đề cập, -nđã có, sau đó có -0, -fvà vân vân), và nhiều trong số họ bạn cần, bạn càng nên cài đặt thay vì cán của riêng bạn theo cách này .
rename. Tôi cho rằng đây là của Larry Wallrename, từrenamegói trong Debian và phái sinh (và IIRCprenametrên các hệ thống thuyết phục RedHat). Một công cụ rất hữu ích.