Rename
重命名符號連結,使用帶有布爾“|”的正則表達式在 Linux 上
我有三個圖示:notte(不是符號連結)、astronomy(符號連結)和 gnome-astronomy(符號連結)。
ls -l astronomy.svg -> celestia.svg gnome-astronomy.svg -> konquest.svg notte.svg
我想將這兩個符號連結重命名為 notte。它應該是這樣的:
ls -l astronomy.svg -> notte.svg gnome-astronomy.svg -> notte.svg notte.svg
rename
命令是:rename -s 'celestia' -- 'notte' *.svg
我希望執行命令,使用帶有“|”的正則表達式,但它不起作用。這裡是這樣的:
rename -s -n 'konquest\|celestia' -- 'notte' *.svg rename -s -n 's/konquest\|celestia/notte/g' *.svg rename -s -n 's/\(konquest\|celestia\)/notte/g' *.svg
這種情況只有在沒有
-s
並且文件不是符號連結的情況下才有效。
該軟體包的
rename
實用程序util-linux
也稱為rename.ul
不理解正則表達式和-n
,而是-s
開關。您可以在循環中重命名符號連結目標:
for i in konquest celestia; do rename.ul -s "$i" notte *.svg done
Perl
rename
腳本可以理解正則表達式和-n
,但不能重命名符號連結目標。
rename -s -n 's/konquest|celestia/notte/g' *.svg