세 개의 아이콘이 있습니다.노트(기호 링크 아님), 천문학(기호 링크) 및 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
파일이 심볼릭 링크가 아닌 경우에만 작동합니다.
답변1
rename
이 패키지의 유틸리티는 정규 표현식과 정규 표현식을 이해하지 못하지만 스위치는 이해하는 것으로 util-linux
알려져 있습니다 .rename.ul
-n
-s
다음을 사용하여 루프에서 기호 링크 대상의 이름을 바꿀 수 있습니다.
for i in konquest celestia; do
rename.ul -s "$i" notte *.svg
done
Perl rename
스크립트는 정규식 및 을 이해 -n
하지만 심볼릭 링크 대상의 이름을 바꿀 수는 없습니다.
답변2
rename -s -n 's/konquest|celestia/notte/g' *.svg