web-dev-qa-db-ja.com

シンボリックリンクを通常のフォルダとしてコピーする方法

シンボリックリンクのあるフォルダがあります。

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
66
Marek
cp -Lr /usr/share/solr/ ~/solrTest

man cpが付いているunixコマンドのためにmanページをチェックしてください

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

Manページから:

「-L」、「 - dereference」 - コピーするときはシンボリックリンクをたどります。このオプションを指定すると、cpはシンボリックリンクを作成できません。たとえば、ソースツリーの(通常のファイルへの)シンボリックリンクは、コピー先のツリーの通常のファイルにコピーされます。

だからこれはあなたが試すべきオプションです。

11
Migol
cp -r -L /usr/share/solr/ ~/solrTest

cp(1)のmanページから:

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

1つの簡単な解決策は以下のとおりです。

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

欠点は、最初に宛先ディレクトリを作成しなければならないことです。

0
Andreas Wong