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.