Bagaimana cara menyalin di bash semua direktori dan file secara rekursif?


143

Saya memiliki skrip:

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

SourceDir berisi juga sub-folder.

Masalah itu DestFoldertidak hanya di semua pohon, tetapi di tingkat atas semua tingkat dan file lain.

Bagaimana cara memperbaiki ?


Maaf, lupa menambahkan -name "* .txt"
user710818

Jawaban:


303
cp -r ./SourceFolder ./DestFolder

8
Jadi, untuk memperjelas, opsi kapital -R akan menyalin direktori root lagi; opsi -r kecil menjaga jalur root tetap sama.
AnneTheAgile

8
@AnneTheAgile - dari pengujian saya barusan dan menurut halaman manual, -r dan -R tidak berbeda.
aaaaaa

@aaaaaa, ty! OS / versi mana yang Anda gunakan? Saya kemudian mengetahui bahwa perintah bash dapat sedikit berbeda di seluruh sistem operasi.
AnneTheAgile

2
cpbukan perintah bash tetapi dapat dijalankan secara terpisah, jadi ini khusus untuk sistem. Di sisi lain, perintah bash yang sebenarnya sama di seluruh sistem operasi.
lanzz

Saya harus menambahkan garis miring di akhir folder sumber saya. Tidak yakin kenapa. Saya juga menggunakan build vars. cp -r "$CONFIG_PATH/" "$CODESIGNING_FOLDER_PATH"
Marty

54

kode untuk salinan sederhana.

cp -r ./SourceFolder ./DestFolder

kode untuk salinan dengan hasil sukses

cp -rv ./SourceFolder ./DestFolder

kode untuk Forcefully jika sumber berisi file readonly apapun itu juga akan disalin

cp -rf ./SourceFolder ./DestFolder

untuk bantuan detail

cp --help
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.