디렉토리의 파일 이름 변경 [중복]

디렉토리의 파일 이름 변경 [중복]

특정 디렉토리에 여러 파일이 있습니다. 이것들은 파일이에요

idex.1.ebwt  idex.2.ebwt  idex.3.ebwt  idex.4.ebwt  idex.rev.1.ebwt  idex.rev.2.ebwt

나머지 이름을 동일하게 idex유지하기 위해 파일 이름을 변경하고 싶습니다 . 기본적 으로 index나는idexindex

한 줄 명령이 있습니까?

답변1

간단한 -loop와 일부 쉘 마법을 사용하여 for이 작업을 수행 할 수 있습니다.

for file in idex.*; do
    mv "$file" "index${file#idex}"
done

네, 한 줄로 넣을 수도 있습니다. ;)

${var#pattern}$var행간을 제거하여 평가합니다 pattern(여기서 pattern모드 glob(7)). 네 가지 변형이 있습니다(POSIX 호환).

  1. ${var#pattern}$var선행 pattern(탐욕적이지 않음)을 제거하기 위해 평가합니다 .
  2. ${var##pattern}$var선행 (탐욕)을 제거하기 위해 평가합니다 pattern.
  3. ${var%pattern}결과는 $var후행이 제거된 pattern(욕심 없음)으로 평가됩니다.
  4. ${var%%pattern}결과는 $var후행이 제거된 상태로 평가됩니다 pattern(탐욕적).

비탐욕과 탐욕의 차이점은 로 설정하면 $var으로 foo.bar.baz평가 되지만 ${var%.*}로 평가된다는 점입니다 . 검색이 되기 때문이죠foo.bar${var%%.*}foo${var%.*}가장 짧은패턴 일치 .*(그래서마지막 .끝) ${var%%.*}어디에서 검색할지가장 긴하나 (따라서첫 번째 .마치다).

어느 버전이 욕심 없는 버전이고 욕심 많은 버전인지 기억하는 데 도움이 되도록 다음 사항을 기억하면 됩니다.더 길게( #각 2회 %) 검색더 길게성냥.

답변2

주요 Linux 배포판을 사용 중이거나 표준 util-linux패키지가 설치되어 있는 경우 이 코드가 요구 사항을 충족해야 합니다.

rename idex index idex*

관련 정보