경로 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
부분을 수행합니다.
여기에 게시할 때는 항상 파일 이름을 인용해야 합니다.