심볼릭 링크를 일반 폴더로 대상에 복사하는 방법


68

심볼릭 링크가있는 폴더가 있습니다.

marek@marek$ ls -al /usr/share/solr/
razem 36
drwxr-xr-x   5 root root  4096 2010-11-30 08:25 .
drwxr-xr-x 358 root root 12288 2010-11-26 12:25 ..
drwxr-xr-x   3 root root  4096 2010-11-24 14:29 admin
lrwxrwxrwx   1 root root    14 2010-11-24 14:29 conf -> /etc/solr/conf

~ / solrTest에 복사하고 싶지만 symlink에서 파일을 복사하고 싶습니다.

내가하려고 할 때 cp -r /usr/share/solr/ ~/solrTest

나는 여기에 symlink를 가질 것이다 :

marek@marek$ ls -al ~/solrTest
razem 36
drwxr-xr-x   5 root root  4096 2010-11-30 08:25 .
drwxr-xr-x 358 root root 12288 2010-11-26 12:25 ..
drwxr-xr-x   3 root root  4096 2010-11-24 14:29 admin
lrwxrwxrwx   1 root root    14 2010-11-24 14:29 conf -> /etc/solr/conf

답변:


92
cp -Lr /usr/share/solr/ ~/solrTest

다음 man으로 유닉스 명령에 대한 페이지를 확인하십시오man cp

   -L, --dereference
          always follow symbolic links in SOURCE

4
"cp : -H, -L 및 -P 옵션을 -r 옵션과 함께 지정할 수 없습니다."라는 메시지가 나타납니다.
balupton

3
@balupton : try -LR
pt2ph8

11

매뉴얼 페이지에서 :

'-L', '-dereference'-복사 할 때 기호 링크를 따릅니다. 이 옵션을 사용하면 cp는 기호 링크를 작성할 수 없습니다. 예를 들어 소스 트리의 심볼릭 링크 (일반 파일로)는 대상 트리의 일반 파일로 복사됩니다.

이것이 시도해야 할 옵션입니다.


5
cp -r -L /usr/share/solr/ ~/solrTest

로부터 cp(1)매뉴얼 페이지

  -L, --dereference
        always follow symbolic links in SOURCE

0

한 가지 빠른 해결책은 다음과 같습니다.

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

단점은 먼저 대상 디렉토리를 만들어야한다는 것입니다


일부 셸에서는 숨겨진 파일 / 폴더를에서 복사하지 않습니다 symlink_dir.
vmrob
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.