Saya ingin cp aaa/deep/sea/blob.psd
kebbb/deep/sea/blob.psd
Bagaimana cara saya menyalin jika direktori deep
dan sea
tidak ada di bawah bbb
sehingga salinan keduanya membuat direktori yang diperlukan dan menyalin file?
Saat ini saya
No such file or directory
menjadi sedalam dan laut tidak ada.
Saya melihat-lihat halaman bantuan pria dan pertanyaan-pertanyaan lain tetapi tidak ada yang muncul pada saya.
Yang paling dekat saya gunakan rcp
untuk direktori:
rcp -r aaa/deep/sea/ bbb/deep/sea/
meskipun ini menyalin seluruh direktori dan isinya dan saya hanya ingin satu file. Namun mencoba untuk melakukan itu membericp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
rsync
jawabannya hanya akan membuat 1 direktori, danpax
tampaknya tidak menjadi umum.-d
sebagai ganti-D
pada Mac.755
(rwxr-xr-x
) izin, yang mungkin tidak diinginkan. Anda dapat menentukan sesuatu yang lain dengan-m
sakelar, tetapi saya tidak dapat menemukan cara untuk hanya menyimpan izin file :(Dengan perintah standar (POSIX / Unix), Anda dapat:
sumber
info tar
- di suatu tempat di sekitar bagian portabilitas - saya pikir Anda akan menemukan bahwa GNUtar
mengklaim sepenuhnyapax
kompatibel. Saya tetap melakukannya, meskipun saya belum pernah mencoba menguji klaim itu.Saya tidak mengetahui cara melakukannya menggunakan
cp
, tetapi tentu saja mungkin menggunakanrsync
:di mana
dir
direktori yang tidak harus ada. Ada banyak cara lain untuk mencapai hal yang sama menggunakan perintah lain.sumber
rsync -R
mempertahankan hierarki direktorirsync
membutuhkan lebih banyak opsi, tetapi pertanyaannya adalah tentang membuat direktori target yang tidak ada, maka jawaban singkat saya :)cp
memiliki--parents
opsi.Jika Anda tidak memiliki
pax
(itu diamanatkan oleh POSIX, sebagai pengganti standar cpio dan tar yang memiliki terlalu banyak ketidakcocokan untuk distandarisasi), gunakancpio -p
atautar -cf - … | tar -xf -
sebagai gantinya.sumber