Saya memiliki proyek Eclipse dan file ".project" di dalamnya, struktur direktori terlihat seperti ' myProject/.project
'. Saya ingin menyalin file '.project' ini ke direktori lain, tapi saya ingin nama direktori terlampir dipertahankan.
Katakanlah saya punya ' a/myProject/.project
', saya ingin menyalin ' myProject/.project
' ke ' b
', jadi ' b/myProject/.project
', tetapi ' b/myProject
' tidak ada. Ketika saya mencoba di:
cp -r ./myProject/.project ../b
itu hanya menyalin file '.project' itu sendiri, tanpa direktori 'myProject'. Mohon saran.
Pertama digunakan
mkdir -p
untuk membuat folder tujuan dengan pembuatan jalur orangtua rekursif. Kemudian salin konten ke folder tujuan:sumber
Lihat
man cp
untuk informasi lebih lanjut.sumber
Saya menggunakan cpio dalam kombinasi dengan find. Penjelasan di sini .
Contoh untuk use case Anda:
Perintah ini menemukan semua file di dalam
/a/myProject/.project/
dan salinan, sambil mempertahankan path, semua file yang ada di dalamnya.sumber
Selain
--parents
itu juga diperlukan untuk menambahkan-r
opsi untuk menghindari menghilangkan salinan direktori paling dalamJadi perintah yang bekerja untuk saya adalah
sumber
Perlu diketahui bahwa tampaknya ada bug di
cp --parents
. Ketika saya menggunakannya--parents
bersama--preserve=all
, atribut tanggal dan waktu BEBERAPA direktori tujuan TIDAK dilestarikan.Tautan berikut tampaknya mengonfirmasi bahwa ini adalah bug: bug # 8767: cp: --preserve = semua tidak berfungsi untuk orang tua ketika --parlemen digunakan .
Jadi sepertinya Anda tidak bisa bergantung pada atribut yang dipertahankan saat menggunakan
--parents
bersama seperti--preserve=all
atau-p
.sumber
Saya menggunakan
--parents
dengancp
perintah dan bekerja dengan saya. untuk lebih jelasnya selalu gunakan manual. Terima kasih.sumber