немає виделок:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Коли ви використовуєте цикл оболонки, mvроздвойте один раз на файл. renameКоманда Перла не робить.
(Команда перейменування Perl має деякі обмеження, але в цьому конкретному випадку ці обмеження не застосовуються.)
Що стосується renameкоманди, показаної раніше, так, це працює, але тоді у вас є все це плутанина між двома різними видами перейменування тощо. Якщо у вас є правильний, чудово, але якщо ні, це теж працює.
Якщо у вас немає команди perl-перейменувати і не можете її встановити, ви можете просто зробити це:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Як бачимо, для цього використовується та сама підміна, яка вказана у верхній відповіді. Звичайно, Perl перейменування є і інші навороти (верхній відповідь було сказано, -nвже, тобто -0, -fі так далі), і тим більше з них вам потрібно, тим більше ви повинні встановити , що замість того , щоб додати власні таким чином , .
rename. Я припускаю, що це Ларрі Уоллrename, зrenameпакету Debian і похідної (і IIRCprenameдля систем переконання RedHat). Дуже корисний інструмент.