Anggaplah saya memiliki dua sistem yang identik. Pada sistem pertama saya telah membuat tautan simbolik. Pada yang kedua saya ingin menyalin symlink itu melalui sftp dan symlink akan berfungsi sama (yaitu jika symlink terhubung ke /etc/
, setelah menyalinnya, hanya symlink yang akan disalin dan hanya symlink (bukan file yang ditautkan))
Ada ide tentang bagaimana saya bisa melakukan ini / jika saya bisa melakukan ini? Saya hanya ingin menyalin tautan simbolis, tidak ada yang lain; hanya referensi.
sftp
tidak akan membiarkan kamu melakukan itu.rsync
bisa, seperti yang bisassh cp ...
Jawaban:
Jika Anda memasang symlink, maka Anda dapat menyalin tarball ke mesin jarak jauh dengan cara apa pun yang Anda suka. Saat Anda membukanya, Anda akan menemukan bahwa Anda hanya menyalin tautan simbolis dan tidak ada yang lain. Sebagai contoh:
Untuk mengujinya, pertama-tama saya membuat file teks.
Kemudian buat symlink ke file dan kompres menjadi tar gzip.
Transfer file ini ke komputer Anda yang lain dan kemudian kompres:
Anda akan menemukan bahwa symlink ada di sana, tetapi bukan file asli yang ditunjuknya.
Tentu saja, jika Anda ingin mentransfer file asli dan symlink sambil mempertahankan hubungan mereka, Anda dapat menempatkan keduanya di tarball dan keduanya akan ditransfer, dan symlink masih harus diarahkan dengan benar ke file asli ketika Anda membuka kompres tarball di lokasi tujuan.
sumber
sftp
( linux.die.net/man/1/sftp )! Ada perintahsymlink
khusus untuk apa yang tampaknya Anda butuhkan.Agak tidak jelas bagaimana tepatnya Anda ingin berurusan dengan symlink. Seperti yang saya pahami, Anda ingin membuat ulang symlink di sistem lain. Symlink bergantung pada sistem file, protokol yang digunakan untuk menyalin file harus menyadari hal itu. Sebuah contoh yang baik adalah menggunakan
rsync
dengan-a
pilihan.lebih khusus,
-l
opsi, tetapi-a
mungkin apa yang Anda inginkan.Ini akan membuat ulang symlinks tanpa menarik target lebih dari (mendeferensikan tautan).
sumber
sftp
akan melintasi subdirektori dengan-r
sakelar, tetapi tidak mengikuti symlink, karena abstrak sistem file.sftp
mendukung pembuatan symlink di host. Anda setidaknya harus mencoba mengunduh hanya symlink (ketika symlink adalah~/etc
->/etc/
lakukanget etc
tanpa trailing/
) dan lihat apa yang terjadi. Itu tergantung pada FS dari server dan klien. Harap edit pertanyaan awal Anda sesuai!Saya tahu @polemon telah menjawab ini.
Tetapi melakukan sedikit tad untuk solusi cepat.
Saya harus melakukan man rsync untuk mengetahui saklar mana yang ingin saya gunakan ...
Meskipun, dalam kasus Anda, Anda perlu memastikan bahwa tautan tidak rusak!
sumber
Solusi yang sangat mudah (untuk direktori home):
atau
misalnya
untuk memberikan penempatan .bashrc yang disinkronkan ke tujuan (misalnya jaringan) lain.
sumber
Jawaban lain sudah menjelaskan cara mentransfer tautan simbolis ke komputer lain. Namun, terlepas dari bagaimana Anda mentransfer symlink, Anda tidak akan dapat menggunakan symlink ini untuk mengakses file
/etc/
melalui FTP, SFTP, SCP, SSH atau cara lainnya. Layanan ini cenderung chroot ke direktori yang diberikan atau dicegah dari memberikan akses ke file yang tidak dibagikan secara eksplisit. Tentu saja, selalu ada cara untuk meretas ini pada sistem yang lebih lama, tetapi kerentanan seperti itu cenderung ditambal dan ditingkatkan segera setelah ditemukan. Maaf, saya tidak berpikir apa yang ingin Anda lakukan akan mungkin terjadi.sumber