So kopieren Sie Symlinks als normale Ordner in das Ziel


68

Ich habe einen Ordner mit Symlinks:

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

Ich möchte es nach ~ / solrTest kopieren, aber ich möchte auch Dateien von Symlink kopieren

wenn ich es versuche cp -r /usr/share/solr/ ~/solrTest

Ich werde Symlink hier haben:

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

Antworten:


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

Überprüfen Sie die manSeite für Unix-Befehle mitman cp

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

4
Ich erhalte die Meldung "cp: Die Optionen -H, -L und -P dürfen nicht mit der Option -r angegeben werden."
Balupton

3
@balupton: versuchen Sie -LR
pt2ph8

11

Aus der Manpage:

'-L', '- dereference' - Folgen Sie beim Kopieren symbolischen Links. Mit dieser Option kann cp keine symbolische Verknüpfung erstellen. Beispielsweise wird ein Symlink (zu einer regulären Datei) im Quellbaum in eine reguläre Datei im Zielbaum kopiert.

Dies ist also die Option, die Sie ausprobieren sollten.


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

Von der cp(1)Manpage:

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

0

Eine schnelle Lösung ist:

$ mkdir dest_dir
$ cp symlink_dir/* dest_dir/

der Nachteil ist, dass Sie zuerst das Zielverzeichnis erstellen müssen


In einigen Shells werden dadurch keine versteckten Dateien / Ordner kopiert symlink_dir.
vmrob
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.