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


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にコピーしたいのですが、シンボリックリンクからもファイルをコピーしたい

私がしようとするとき 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

回答:


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

次のmanコマンドでUnixコマンドのページを確認しますman cp

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

4
「cp:-H、-L、および-Pオプションは-rオプションと一緒に指定できません。」
balupton

3
@balupton:-LR
pt2ph8を

11

manページから:

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

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



0

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

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

欠点は、最初に宛先ディレクトリを作成する必要があることです


一部のシェルでは、これは隠しファイル/フォルダーをからコピーしませんsymlink_dir
vmrob
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.