Jak skopiować w bash wszystkie katalogi i pliki rekurencyjnie?


137

Mam skrypt:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir zawiera również podfoldery.

Problem dotyczy DestFoldernie tylko wszystkich drzew, ale także wyższych poziomów wszystkich innych poziomów i plików.

Jak naprawić ?


Przepraszamy, zapomniałem dodać -name "* .txt"
user710818

Odpowiedzi:


289
cp -r ./SourceFolder ./DestFolder

6
Tak więc, dla wyjaśnienia, opcja kapitał -R ponownie skopiuje katalog główny; small -r powoduje zachowanie tych samych ścieżek głównych.
AnneTheAgile

8
@AnneTheAgile - z moich niedawnych testów i zgodnie ze stronami podręcznika man -r i -R nie różnią się.
aaaaaa

@aaaaaa, ty! który system operacyjny / wersję używasz? Później dowiedziałem się, że wydaje się, że polecenia bash mogą się nieznacznie różnić w różnych systemach operacyjnych.
AnneTheAgile

2
cpnie jest poleceniem bash, ale oddzielnym plikiem wykonywalnym, więc jest specyficzne dla systemu. Z drugiej strony, prawdziwe polecenia bash są takie same w różnych systemach operacyjnych.
lanzz

52

kod do prostej kopii.

cp -r ./SourceFolder ./DestFolder

kod kopii z wynikiem pomyślnym

cp -rv ./SourceFolder ./DestFolder

kod dla Forcefully, jeśli źródło zawiera plik tylko do odczytu, zostanie również skopiowany

cp -rf ./SourceFolder ./DestFolder

po szczegóły pomocy

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