이름 바꾸기: 단어를 추가하거나 여러 파일의 이름을 바꾸는 방법

이름 바꾸기: 단어를 추가하거나 여러 파일의 이름을 바꾸는 방법

내 디렉토리에 여러 파일이 있습니다. 예를 들어:

eventDataLog.txt.2015-04-23-22
eventDataLog.txt.2015-04-23-23
eventDataLog.txt.2015-04-24-01
eventDataLog.txt.2015-04-24-02
eventDataLog.txt.2015-04-24-03
eventDataLog.txt.2015-04-24-04

나는 그것들을 모두로 바꾸고 싶다

abc-eventDataLog.txt.2015-04-23-22
abc-eventDataLog.txt.2015-04-23-23
abc-eventDataLog.txt.2015-04-24-01
abc-eventDataLog.txt.2015-04-24-02
abc-eventDataLog.txt.2015-04-24-03
abc-eventDataLog.txt.2015-04-24-04

이 작업을 수행하기 위해 mv 명령을 어떻게 사용할 수 있습니까? 나는 이것을 사용했다

mv  eventDataLog.txt.2015-* ec2prod-eventDataLog.txt.2015-*
mv: target ‘ec2prod-eventDataLog.txt.2015-*’ is not a directory

하지만 작동하지 않습니다

하지만 해당 디렉터리에는 다른 많은 파일이 있으므로 대답이 적절하며, eventDataLog.txt 파일도 현재 파일이고 사용 중이므로 무시해야 합니다.

답변1

Bash는 이럴 때 유용합니다.

for FILE in eventDataLog.txt.2015*; do mv "$FILE" "abc-$FILE"; done

답변2

명령을 사용하여 이 작업을 수행 할 수 있습니다 rename. 귀하의 경우에는 이렇게 할 것입니다 rename eventDataLog.txt.2015 abc-eventDataLog.txt.2015 eventDataLog.txt*.

사용되는 구문은 입니다 rename frompattern topattern listoffilessuchaswildcardmatch.

답변3

나는 이 mmv도구를 사용하여 다음을 수행할 것입니다.

mmv eventDataLog.txt.\* abc-eventDataLog.txt.\#1

이는 일괄 이름 바꾸기를 위해 특별히 설계되었습니다.

답변4

주문하다

for FILE in $(ls -1 | egrep '^eventDataLog' | egrep -v '^eventDataLog.txt$'); do mv $FILE abc-$FILE; done

노트

  • egrep정규식을 지원하는 버전이며 대부분의 배포판에 grep포함되어 있습니다.grep
  • 먼저 egrep"eventDataLog"로 시작하는 모든 파일을 필터링합니다.
  • 두 번째는 egrep모든 파일을 필터링합니다.원하지 않는다( -v참고 사항일치)는 무시하려는 파일의 전체 이름과 일치합니다.

입증하다

$ ls -1
eventDataLog.txt
eventDataLog.txt.2015-04-23-22
eventDataLog.txt.2015-04-23-23
eventDataLog.txt.2015-04-24-01
eventDataLog.txt.2015-04-24-02
eventDataLog.txt.2015-04-24-03
eventDataLog.txt.2015-04-24-04
myOtherFile
mySecondOtherFile

$ for FILE in $(ls -1 | egrep '^eventDataLog' | egrep -v '^eventDataLog.txt$'); do mv $FILE abc-$FILE; done

$ ls -1
abc-eventDataLog.txt.2015-04-23-22
abc-eventDataLog.txt.2015-04-23-23
abc-eventDataLog.txt.2015-04-24-01
abc-eventDataLog.txt.2015-04-24-02
abc-eventDataLog.txt.2015-04-24-03
abc-eventDataLog.txt.2015-04-24-04
eventDataLog.txt
myOtherFile
mySecondOtherFile

관련 정보