매우 긴 위치인 여러 수준의 중첩된 디렉터리에서 파일 이름을 바꿔야 합니다 mv
.
전체 위치를 한 번만 입력하여 시간을 절약하고 싶습니다.
파일을 이동할 때 대상 디렉터리를 줄이는 방법이 있나요?
예를 들어 더 잘 설명하겠습니다.
mv /dir1/dir2/dir3/dir4/dir5/file.txt /dir1/dir2/dir3/dir4/dir5/moved_file.txt
--->mv /dir1/dir2/dir3/dir4/dir5/file.txt moved_file.txt
답변1
cd
작업 디렉토리를 다음으로 변경한 /dir1/dir2/dir3/dir4/dir5
다음 를 호출하여 원래 디렉토리로 돌아갈 mv
필요가 없도록 서브쉘에서 이 작업을 수행하십시오 (작업 디렉토리에 대한 변경사항은 서브쉘에 대해 로컬입니다).cd
(...)
( cd /dir1/dir2/dir3/dir4/dir5 && mv file.txt moved_file.txt )
어떤 이유로 실패하면 실행되지 않는 &&
결과도 발생 합니다.mv
cd
답변2
경로와 파일 이름을 식별하는 프로그래밍 방식이 없는 경우...
SRC=/dir1/dir2/dir3/dir4/dir5
DEST=/dirA/dirB/dirC/dirD
mv "$SRC"/file.txt "$DEST"/moved_file.txt
아니면 이름을 바꾸려고...
mv "$SRC"/file.txt "$SRC"/moved_file.txt