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.