Jak mogę użyć cp do skopiowania katalogu, ale zignoruj ​​pewien podkatalog w Linuksie


9

Z powodu problemu z dyskiem twardym próbuję przenieść partycję z jednego dysku twardego na inny. Śledzę http://www.ibm.com/developerworks/library/l-partplan.html artykuł, aby to zrobić. W części kopiującej chciałbym zignorować jeden konkretny podkatalog. Jak mogę to zrobić, pamiętając o kopiowaniu, muszę zachować grupę właścicieli i znacznik czasu. Istnieje około 700 GB danych, które należy skopiować, jeśli nie zignoruję konkretnego podkatalogu.

Odpowiedzi:


11

rsync -ax --exclude [relative path to directory to exclude] /path/from /path/to

Możesz także chcieć (lub nie) używać --del. Sprawdź stronę podręcznika.


Tak, to załatwiło sprawę. To działa ..
— P Roy

2

Zwykle używam cpiow następujący sposób,

cd source_dir; find . -depth | cpio -pdmv dest_dir

A ponieważ jest to potok, możesz umieścić „filtr odejmowania” na środku.

cd sourcedir; find . -depth | grep -v exclude_dir | cpio -pdmv dest_dir

lub możesz podzielić to na kilka kroków,

cd source_dir; find . -depth > files.lst
gedit files.lst  # (take out the offending directory and files and save back to files.lst)
cpio -pdmv dest_dir < files.lst

Oczywiście najpierw przetestowałbym to na czymś mniejszym, ale masz pomysł.



0

Czy można tymczasowo przenieść ( mv) duży podkatalog do innej lokalizacji, wykonać kopię, a następnie przywrócić podkatalog? Nie widzę bezpośredniej opcji, cpaby to zrobić.


Ja też sprawdziłem man cp, nie ma sposobu, aby zignorować użycie cp. Mam 550 GB danych w tym podkatalogu i mv, co może potrwać kilka godzin.
— P Roy

Zakładałem, że mv będzie operacją stosunkowo tanią - aktualizującą odniesienia do danych, a nie fizycznie przenoszącą je na dysk. Przynajmniej zawsze uważałem, że ruchy w systemie Windows są znacznie szybsze niż kopiowanie - system plików Linux może działać zupełnie inaczej.
— Ash

mv na ten sam dysk twardy jest szybki. Ale kiedy robi się mv na hardiskach, myślę, że zajmuje to tyle samo czasu co cp.
— P Roy

Chciałem przenieść go gdzieś na ten sam dysk twardy, aby usunąć go z drogi, a następnie skopiować pozostałe na dysk zdalny, a następnie przenieść duży plik z powrotem. Chyba że kopiujesz cały dysk z /.
— Ash

0

Raczej brzydkie rozwiązanie, ale ... dlaczego nie po prostu cp wszystko w katalogu nie rekurencyjnie, a następnie skopiować poszczególne katalogi rekurencyjnie?


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.