동일한 명령으로 디렉토리를 복사하고 이름을 바꾸는 방법은 무엇입니까?

동일한 명령으로 디렉토리를 복사하고 이름을 바꾸는 방법은 무엇입니까?

현재 저는 디렉토리의 빠른 백업을 생성하기 위해 이 두 명령을 실행하고 있습니다. 이 두 명령을 하나로 결합하여 하나의 명령으로 새 디렉터리를 복사하고 이름을 바꿀 수 있는 방법이 있습니까?

#cp -R /tf/Custom_App /tf/Custom_App_backups/
#mv /tf/Custom_App_backups/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21

답변1

당신은 할 수 있어야합니다

cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21

하지만, 대상 디렉토리가 이미 존재하는 경우 소스 경로의 마지막 부분을 대상 경로에 추가하고 생성한 /tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App다음 트리의 나머지 부분을 복사합니다.

이를 방지하려면 /tf/Custom_App/.소스로 사용하세요. 물론, 이 경우 rm -r /tf/Custom_App_backups/Custom_App_2017-12-21복사 후 기존 파일이 그대로 남아 있는 것을 원하지 않는다면 이 작업을 먼저 수행하는 것이 좋습니다.

/some/dir와 의 차이점은 /some/dir/.얼마 전에 논의되었습니다.그 당시 CP는 매우 이상하게 행동했습니다. (점) 또는 .. (점)은 소스 디렉터리입니다.

답변2

또는 다음을 수행할 수 있습니다.

mkdir /tf/Custom_App_backups/Custom_App_2017-12-21 # prepare the target location
cp -R /tf/Custom_app/. /tf/Custom_App_backups/Custom_App_2017-12-21 # copy only the contents

이를 통해 사용자 정의 위치를 ​​미리 지정할 수 있습니다. 또한 접미사 " /.this"를 사용하여 콘텐츠만 복사하고 콘텐츠에 포함된 폴더(이 경우 폴더)는 제외할 수 있습니다 Custom_app.

답변3

나는 동일한 조언을 찾기 위해 우연히 이 페이지를 발견했습니다. 내 Ubuntu 20.04(Focal Fossa) 시스템에서 이 명령을 시도하고 @ilkkachu에서 제공한 것과 동일한 구문을 사용했습니다. dest/처럼 dest 폴더에 후행 슬래시를 추가했다는 점만 빼면요. 결과적으로 소스 폴더와 그 형제 폴더가 복사됩니다! 후행 슬래시 없이 다시 시도하면 원하는 결과를 얻습니다.

따라서 나중에 참조할 수 있도록 dest 폴더에 후행 슬래시를 추가하면 소스 형제 파일도 복사된다는 점에 유의하세요(.. 적어도 내 경험에서는 그랬습니다).

답변4

대상 디렉터리를 생성하여 쉽게 계속할 수 있습니다.

mkdir Custom_App_2017-12-21
cd Custom_App_2017-12-21/
cp -R /tf/Custom_App/* .

마지막 명령은 모든 관련 파일을 새로 생성된 디렉터리에 복사합니다.

관련 정보