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!

Antworten:


120

Versuche dies:

cp Folder1/* Folder2/

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

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.


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
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.