한 디렉터리에서 다른 디렉터리로 파일 이름 바꾸기 및 이동

한 디렉터리에서 다른 디렉터리로 파일 이름 바꾸기 및 이동

경로 1에서 실행하여 경로 2에서 경로 3으로 파일 이름을 바꾸고 이동하는 명령에 대한 도움이 필요합니다.

생각하다

path1 = /data/run/
path2 = /data/output/
path3 = /data/archive/

경로 2에는 "one.txt", "two.txt" 등과 같은 일부 파일이 포함되어 있습니다.

"one.txt" 파일의 이름을 "archive_one.txt"로 바꾸고 이를 path3으로 이동할 수 있는 명령을 path1에서 실행하고 싶습니다.

'/data/run'에서 다음 명령을 시도했지만 전체 경로를 파일 이름으로 사용하고 오류가 발생합니다.

$for FILENAME in /data/output/*.txt; do mv $FILENAME /data/archive/archive_$FILENAME; done

어떻게 해야 하나요? 감사해요.

답변1

당신이 하고 싶은 일은

for FILENAME in /data/output/*.txt; 
do 
   mv "$FILENAME" "/data/archive/archive_$(basename  "$FILENAME")" ; 
done

물론 이것은 연속될 수 있다.

어디

  • basename "$FILENAME"파일 이름의 마지막 부분을 추출합니다.
  • basename "$FILENAME" .txt동일한 스트라이프 .txt부분을 수행합니다.

여기에 게시할 때는 항상 파일 이름을 인용해야 합니다.

관련 정보