Unix - kopiowanie zawartości jednego katalogu do drugiego [zamknięte]


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

> mkdir Folder2/

> [copy command]

A teraz Folder2/wygląda tak:

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

Jak to zrobić? Próbowałem, cp -r Folder1/ Folder2/ale skończyło się na:

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

Co jest bliskie, ale nie dokładnie to, czego chciałem.

Dzięki!

Odpowiedzi:


124

Spróbuj tego:

cp Folder1/* Folder2/

3
ale to nie skopiuje ukrytych plików, prawda?
Fabrizio Regini

9
Poprawny. cp -Rwill, ale to będzie rekurencyjnie kopiowane, więc możesz tego użyć lub nie. Możesz zrobić, cp Folder1/.* Folder2/aby skopiować tylko ukryte pliki.
Geoff

1
Zauważ, że to się nie powiedzie, jeśli używasz "sudo" lub jego odpowiednika, a katalog zawiera dużo plików. Dostajęsudo: unable to execute /bin/cp: Argument list too long
Nathan Osman

zwróć uwagę, że SCP ma nieco inną składnię, patrz tutaj: stackoverflow.com/a/26346339/1984636
sivi

Nie rób tego. Wykonaj „cp -rT src dest” na Linuksie lub „cp -R src / dest” na BSD.
xpusostomos

47

Całkiem proste, z *symbolem wieloznacznym.

cp -r Folder1/* Folder2/

Ale zgodnie z twoim przykładem rekursja nie jest potrzebna, więc wystarczy:

cp Folder1/* Folder2/

EDYTOWAĆ:

Lub pomiń mkdir Folder2część i po prostu biegnij:

cp -r Folder1 Folder2

Jeśli ls | sort -k1.5 | head -8 > folder1więc jak to zrobić?
Pooja

Właśnie straciłeś wszystkie ukryte pliki. Nie rób tego. Wykonaj „cp -rT src dest” na Linuksie lub „cp -R src / dest” na BSD.
xpusostomos

23

Aby wykonać dokładną kopię, uprawnienia, własność i wszystko to użyj „-a” z „cp”. „-r” skopiuje zawartość plików, ale niekoniecznie pozostawi inne rzeczy bez zmian.

cp -av Źródło / * Dest /

(upewnij się, że miejsce docelowe / istnieje jako pierwsze)

Jeśli chcesz wielokrotnie aktualizować z jednego do drugiego lub upewnić się, że skopiowałeś również wszystkie pliki dotfiles, rsyncjest to bardzo pomocne:

rsync -av --delete źródło / cel /

Jest to również możliwe do odzyskania, ponieważ można je ponownie uruchomić, jeśli przerwiesz kopiowanie. Lubię "-v", ponieważ pozwala ci obserwować, co się dzieje, ale możesz to pominąć.


1
co to jest -vza?
HattrickNZ

gadatliwy, tylko po to, by zobaczyć, co się dzieje.
Brian White

1
Jeśli masz dużo plików, -vopcja może zająć trochę czasu. Jeśli nie potrzebujesz wyjścia, użyj -atylko.
Eyal Levin

1
Aby kopia została spowolniona przez wyjście tekstowe, musiałbyś mieć dość wolne połączenie sieciowe. I nawet wtedy prawdopodobnie byłby to powrót wiersza polecenia, a nie sama kopia.
Brian White

Zgubiłeś swoje ukryte pliki. Wykonaj „cp -rT src dest” na Linuksie lub „cp -R src / dest” na BSD.
xpusostomos
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.