Unix - Kopieren Sie den Inhalt eines Verzeichnisses in ein anderes [geschlossen]

87
Folder1/
    -fileA.txt
    -fileB.txt
    -fileC.txt

> mkdir Folder2/

> [copy command]

Und jetzt Folder2/sieht es so aus:

Folder2/
    -fileA.txt
    -fileB.txt
    -fileC.txt   

Wie kann das geschehen? Ich habe es versucht, cp -r Folder1/ Folder2/aber am Ende hatte ich:

Folder2/
    Folder1/
        -fileA.txt
        -fileB.txt
        -fileC.txt

Welches ist nah, aber nicht genau das, was ich wollte.

Vielen Dank!

JDS
quelle

Antworten:

120

Versuche dies:

cp Folder1/* Folder2/
Geoff
quelle
3
aber das kopiert keine versteckten Dateien, oder?
Fabrizio Regini
9
Richtig. cp -Rwird, aber das wird rekursiv kopiert, so dass Sie das verwenden können oder nicht. Sie können cp Folder1/.* Folder2/nur die versteckten Dateien kopieren.
Geoff
1
Beachten Sie, dass dies fehlschlägt, wenn Sie "sudo" oder ein gleichwertiges Verzeichnis verwenden und das Verzeichnis viele Dateien enthält. Ich bekommesudo: unable to execute /bin/cp: Argument list too long
Nathan Osman
Beachten Sie, dass SCP eine etwas andere Syntax hat, siehe hier: stackoverflow.com/a/26346339/1984636
sivi
Tu das nicht. Führen Sie "cp -rT src dest" unter Linux oder "cp -R src / dest" unter BSD aus.
xpusostomos
46

Ganz einfach, mit einem *Platzhalter.

cp -r Folder1/* Folder2/

Nach Ihrem Beispiel ist jedoch keine Rekursion erforderlich, sodass Folgendes ausreicht:

cp Folder1/* Folder2/

BEARBEITEN:

Oder überspringen Sie den mkdir Folder2Teil und führen Sie einfach aus:

cp -r Folder1 Folder2
Koen.
quelle
Wenn ls | sort -k1.5 | head -8 > folder1ja, wie geht das?
Pooja
Sie haben gerade alle Ihre versteckten Dateien verloren. Tu das nicht. Führen Sie "cp -rT src dest" unter Linux oder "cp -R src / dest" unter BSD aus.
xpusostomos
23

Um eine genaue Kopie, Berechtigungen, Eigentumsrechte und alle zu erstellen, verwenden Sie "-a" mit "cp". "-r" kopiert den Inhalt der Dateien, behält aber nicht unbedingt andere Dinge bei.

cp -av Source / * Dest /

(Stellen Sie sicher, dass Dest / zuerst existiert)

Wenn Sie wiederholt von einem zum anderen aktualisieren oder sicherstellen möchten, dass Sie auch alle Punktedateien kopieren, rsyncist dies eine große Hilfe:

rsync -av --delete Source / Dest /

Dies ist auch insofern "wiederherstellbar", als Sie es neu starten können, wenn Sie es während des Kopierens abbrechen. Ich mag "-v", weil Sie damit sehen können, was los ist, aber Sie können es weglassen.

Brian White
quelle
1
Wofür ist das -v?
HattrickNZ
wortreich, nur um zu sehen, was los ist.
Brian White
1
Wenn Sie viele Dateien haben, kann die -vOption einige Zeit dauern. Wenn Sie die Ausgabe nicht benötigen, verwenden Sie sie -anur.
Eyal Levin
1
Sie müssten über eine ziemlich langsame Netzwerkverbindung laufen, damit die Kopie durch Textausgabe verlangsamt wird. Und selbst dann wäre es wahrscheinlich nur die Rückgabe der Eingabeaufforderung, nicht die Kopie selbst.
Brian White
Sie haben Ihre versteckten Dateien verloren. Führen Sie "cp -rT src dest" unter Linux oder "cp -R src / dest" unter BSD aus.
xpusostomos