シンボリックリンクのあるフォルダがあります。
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にコピーしたいのですが、シンボリックリンクからもファイルをコピーしたいです
cp -r /usr/share/solr/ ~/solrTest
を試すとき
ここにシンボリックリンクがあります。
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
cp -Lr /usr/share/solr/ ~/solrTest
man cp
が付いているunixコマンドのためにman
ページをチェックしてください
-L, --dereference
always follow symbolic links in SOURCE
Manページから:
「-L」、「 - dereference」 - コピーするときはシンボリックリンクをたどります。このオプションを指定すると、cpはシンボリックリンクを作成できません。たとえば、ソースツリーの(通常のファイルへの)シンボリックリンクは、コピー先のツリーの通常のファイルにコピーされます。
だからこれはあなたが試すべきオプションです。
cp -r -L /usr/share/solr/ ~/solrTest
cp(1)
のmanページから:
-L, --dereference always follow symbolic links in SOURCE
1つの簡単な解決策は以下のとおりです。
$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/
欠点は、最初に宛先ディレクトリを作成しなければならないことです。