대상 디렉터리가 존재하는 경우 cp -rsf 명령을 사용하여 원본 디렉터리를 복사합니다.

대상 디렉터리가 존재하는 경우 cp -rsf 명령을 사용하여 원본 디렉터리를 복사합니다.

On 에서 Centos 7다음 명령을 사용할 때:

 cp -rsf /path/of/source /path/of/target

대상 디렉터리가 존재하면 파일이 /path/of/target/source.

이것을 어떻게 피할 수 있습니까?

편집하다:

  1. 소스와 대상은 디렉터리입니다.
  2. 기호 링크는 내 환경 요구 사항을 충족합니다. 저장 공간을 절약하려면 심볼릭 링크가 필요합니다.

예를 들어:

  1. mkdir /home/admin/test; mkdir /home/admin/test/1; touch /home/admin/test/1/1.txt;
  2. mkdir /home/admin/test2; mkdir /home/admin/test2/1; touch /home/admin/test2/1/1.txt;
  3. cp -rsf /home/admin/test/1 /home/admin/test2/1
  4. ls /home/admin/test2/1

결과 :

drwxrwxr-x 2 admin admin 4096 Sep 16 15:57 1 -rw-rw-r-- 1 admin admin 0 Sep 16 15:56 1.txt

나는 이 결과를 원한다:

lrwxrwxrwx 1 admin admin 24 Sep 16 16:03 1.txt -> /home/admin/test/1/1.txt

이는 소스 디렉터리 자체가 대상에 복사되지만 그 내용도 복사되기를 원한다는 의미입니다(마치 대상 디렉터리가 존재하지 않는 것처럼).

답변1

-T 해결책은 추가하는 것입니다.남성

-T, --no-target-directory treat DEST as a normal file

cp -rsfT /path/of/source /path/of/target

대상 디렉토리가 존재하는 경우 그 안에 기호 링크가 복사됩니다. 이것의 장점은 대상에 다른 파일이 있는 경우 변경되지 않은 상태로 유지된다는 것입니다.

관련 정보