On 에서 Centos 7
다음 명령을 사용할 때:
cp -rsf /path/of/source /path/of/target
대상 디렉터리가 존재하면 파일이 /path/of/target/source
.
이것을 어떻게 피할 수 있습니까?
편집하다:
- 소스와 대상은 디렉터리입니다.
- 기호 링크는 내 환경 요구 사항을 충족합니다. 저장 공간을 절약하려면 심볼릭 링크가 필요합니다.
예를 들어:
mkdir /home/admin/test; mkdir /home/admin/test/1; touch /home/admin/test/1/1.txt;
mkdir /home/admin/test2; mkdir /home/admin/test2/1; touch /home/admin/test2/1/1.txt;
cp -rsf /home/admin/test/1 /home/admin/test2/1
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
대상 디렉토리가 존재하는 경우 그 안에 기호 링크가 복사됩니다. 이것의 장점은 대상에 다른 파일이 있는 경우 변경되지 않은 상태로 유지된다는 것입니다.