Saya mencari perbedaan antara cp -r
dan cp -a
. Apa yang dimaksud "rekursif" dalam hal menyalin file dari folder?
Saya mencari perbedaan antara cp -r
dan cp -a
. Apa yang dimaksud "rekursif" dalam hal menyalin file dari folder?
Jawaban:
Rekursif berarti cp
menyalin isi direktori, dan jika direktori memiliki subdirektori, mereka juga disalin (secara rekursif). Tanpa -R
, cp
perintah akan melompati direktori. -r
identik dengan -R
Linux, berbeda dalam beberapa kasus tepi pada beberapa varian unix lainnya.
Secara default, cp
membuat file baru yang memiliki konten yang sama dengan file lama, dan izin yang sama tetapi dibatasi oleh umask ; salinannya bertanggal dari saat salinan, dan milik pengguna yang melakukan salinan. Dengan -p
opsi ini, salinan memiliki waktu modifikasi yang sama, waktu akses yang sama, dan izin yang sama seperti aslinya. Ini juga memiliki pemilik dan grup yang sama seperti aslinya, jika pengguna yang melakukan salinan memiliki izin untuk membuat file tersebut.
The -a
pilihan berarti -R
dan -p
, ditambah beberapa pilihan pelestarian lainnya. Ia mencoba untuk membuat salinan yang sedekat mungkin dengan aslinya: pohon direktori yang sama, jenis file yang sama, konten yang sama, metadata yang sama (waktu, izin, atribut yang diperluas, dll.).
-r
karena -a
(untuk a
rchive) selalu yang paling aman dan mungkin apa yang Anda harapkan terjadi.
-r
adalah karena Anda menggunakan varian unix selain Linux yang tidak dimiliki -a
, dan umumnya Anda gunakan cp -rp
. Atau rsync -a
.
Opsi -r atau -R untuk "rekursif" berarti akan menyalin semua file termasuk file di dalam subfolder.
Opsi -a seperti yang tercantum adalah sama dengan -dR yang artinya akan melestarikan tautan serta menyalin isi subdirektori. Apa yang dimaksud dengan mempertahankan tautan adalah bahwa tautan itu tidak akan mengikuti tautan karena penyalinannya secara rekursif.