Skopiuj katalog do Uniksa


78

Jak mogę skopiować strukturę katalogów, dir1, do dir2 (wraz ze wszystkimi podkatalogami) na Uniksie za pomocą okna terminala?


2
„cp -r / dir1 / dir2” Czy to prawda?
Dinesh Kumar,

Tak to jest poprawne. Możesz zaznaczyć jedną z odpowiedzi jako swoje rozwiązanie.
qroberts,

Odpowiedzi:


115
cp -rf /source/path/ /destination/path/

-r = rekurencyjny, kopiuje wszystkie podkatalogi

-f = wymuś, jeśli istniejącego pliku docelowego nie można otworzyć, usuń go i spróbuj ponownie

Uwaga Należy zachować ostrożność przy korzystaniu z -fflagi, ponieważ spowoduje ona wymuszenie zastąpienia wszystkiego, co skopiujesz. Dziękuję @Nifle za tę sugestię.

W razie potrzeby możesz użyć symbolu wieloznacznego *, aby skopiować wszystkie pliki z katalogu.


11
Nie zgadzam się, że powinieneś użyć fflagi. -f if an existing destination file cannot be opened, remove it and try again
Nifle

Osobiście zawsze używam flagi -f. To nie jest dobra praktyka, więc może masz rację.
qroberts,

Jeśli wiesz, co robi i wiesz, co robisz, to jest OK. Ale w tym przypadku z niedoświadczonym użytkownikiem może nie być odpowiednie.
Nifle

@Nifle Tak, rozumiem co mówisz. Tyle, że jeśli go zmusi, szanse na jego działanie są większe niż gdyby tego nie zrobił. Wszystko zależy od tego, co robisz i od tego, co rozumiesz.
qroberts,

Jeśli w odpowiedzi umieścisz notatkę o tym, -fże flaga jest przydatna, jeśli kopiujesz <źródło> nad <test> (jak w przypadku nadpisywania rzeczy w <test>), głosuję za tym i usunę odpowiedź)
Nifle

11

Chociaż cp -Rodpowiedzi są prawidłowe (BTW w przypadku flagi na BSD musi być duża, obie są obsługiwane w systemie Linux), istnieje stara inkantacja dotycząca tar :

$ tar cf - . | (cd DIR; tar xf - )

Dlaczego do cholery miałbyś to zrobić? Ponieważ tar ma dość wyrafinowane rozumienie łączy zarówno twardych, jak i symbolicznych.

Czy chcesz, aby kopia zastąpiła istniejące łącza symboliczne tym, które mają ten sam tekst? Lub z linkami do tego samego celu (dostosowanie ścieżek względnych w celu kompensacji)? Lub z bitowymi kopiami celu?

Jeśli dwa pliki w oryginale są na stałe połączone, czy nowa struktura powinna zawierać dwie kopie danych, czy tylko jedną?

Decyzje, decyzje. Tar ma sensowne wartości domyślne, ale pozwala ci być bardzo konkretnym.


9

lubię

cp -axv source dest

Rsync jest kolejnym dobrym narzędziem do tego

rsync -va source dest
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.