여러 유사한 파일 이름의 끝 변경

여러 유사한 파일 이름의 끝 변경

다음과 비슷한 파일이 많이 있습니다.

56.mp3?referredby=rss

내가 하고 싶은 것은 그것들을 삭제하여 ?referredby=rss다음과 같이 보이게 하는 것입니다:

56.mp3

어떻게 해야 합니까?

답변1

Perl이 있다면 rename쉽습니다.

rename 's/\?referredby=rss//' ./*referredby=rss

그리고 util-linux rename:

rename '?referredby=rss' '' ./*referredby=rss

답변2

?이스케이프 (glob 표현식에서 특별한 의미를 가짐)를 제외하면 이는 실제로 다른 파일의 이름을 바꾸는 것과 다르지 않습니다. 예를 들어 간단한 쉘 루프를 사용할 수 있습니다

for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done

${f%\?*}일치 항목의 가장 짧은 후행 요소를 제거하기 위한 쉘 매개변수 확장은 어디에 있습니까?\?*

관련 정보