Tujuan cp -x (tetap di sistem file)?

25

Jika saya ingin tetap menggunakan sistem file yang sama, tidak bisakah saya menentukan jalur output untuk sistem file yang sama?

Atau untuk mencegah agar tidak sengaja meninggalkan sistem file saat ini?

neverMind9
sumber
1
-x dalam konteks yang berbeda: unix.stackexchange.com/a/358331/30851 tetapi sama untuk cp: -x melewatkan hal-hal, jika Anda memigrasi sistem file dan ingin itu menjadi salinan lengkap, pertimbangkan untuk memasang dengan cara yang memberikan Anda gambaran lengkap.
frostschutz
1
Anda dapat menanyakan hal yang sama tentang banyak bendera, misalnya -i: "mengapa tidak hanya menentukan tujuan yang tidak ada"?
JigglyNaga
1
@JigglyNaga saya juga memikirkan itu. Tetapi -x tidak diungkapkan dengan baik dalam dokumentasi dan jauh lebih tidak jelas.
neverMind9

Jawaban:

59

Ini membatasi mana file akan disalin dari , tidak di mana mereka disalin ke. Ini berguna dengan salinan rekursif, untuk mengontrol bagaimana cpturun ke subdirektori. Demikian

cp -xr / blah

hanya akan menyalin sistem file root, bukan sistem file lain yang di-mount.

Lihat yang cp -xdokumentasi (meskipun perbedaan yang halus).

Stephen Kitt
sumber
3
Oh ya, Anda mungkin tidak ingin menyalin pangsa jaringan di bawah / mnt. Atau repositori RCS jarak jauh yang dipasang di bawah drive rumah Anda.
mckenzm
1
@ mckenzm Juga karena /mnthanya konvensi manusia yang kadang-kadang diberlakukan oleh pengaturan distro tetapi bukan persyaratan OS. Kadang-kadang saya memiliki sistem file jaringan yang dipasang di bawah /var/somewebsite/www/sessionsuntuk mengimplementasikan server web penyeimbang beban
slebetman
Memang, jenis bendera ini mencegah penyalinan secara tidak sengaja bagian jaringan yang besar atau media yang dapat dilepas yang lupa Anda pasang. Dan Anda tidak perlu memberikan --excludeopsi untuk memblokirnya secara manual. Sangat berguna dengan rsync.
Lassi
3
Ini juga menghindari menyalin file sistem seperti /dev, /proc, /sysdll yang Anda biasanya tidak ingin membaca “secara massal”.
Stephen Kitt
28

The -xbendera untuk cpadalah ekstensi GNU. Saat menyalin satu file, opsi ini tidak akan berpengaruh, tetapi ketika menyalin seluruh hirarki file, -xopsi ini mencegah penyalinan file dan direktori yang tidak hidup pada sistem file yang sama dengan sumber aslinya.

Misalnya, pada sistem file dengan titik mount di /usrdan /usr/local, menggunakan cp -xR /usr /some-desttidak akan menyalin hierarki di bawah /usr/local.

Ada utilitas lain dengan -xopsi dengan semantik yang sama, seperti dudan find(bendera dipanggil -xdevuntuk find), dan rsync.

Kusalananda
sumber