GNU/Linux >> Belajar Linux >  >> Linux

Membuat Tautan Keras Direktori Secara Paksa?

Saya memahami alasan mengapa hampir setiap versi unix tidak mengizinkan hard-linking direktori (sebenarnya HFS+ pada OS X adalah satu-satunya yang saya tahu, tetapi bahkan itu tidak mudah dilakukan sendiri). Namun, semua sistem file dalam teori mendukung direktori tertaut keras, karena semua direktori berisi setidaknya satu tautan keras tambahan ke dirinya sendiri, ditambah tautan keras ekstra di sub-direktori yang menunjuk kembali ke induknya.

Sekarang, saya menyadari bahwa tautan keras dapat berbahaya jika disalahgunakan, karena dapat membuat struktur siklus yang hanya akan diperiksa oleh beberapa program, dan dengan demikian menjadi terjebak dalam lingkaran tak terbatas. Namun, saya berharap untuk menggunakan tautan keras untuk membuat cadangan gaya Time Machine yang dapat bekerja untuk semua unix. Saya tidak percaya bahwa struktur semacam ini akan berbahaya, karena tautannya hanya menunjuk ke cadangan sebelumnya; seharusnya tidak ada risiko tautan siklis. Dalam kasus saya, saat ini saya hanya menggunakan rsync untuk membuat tautan keras ke file yang ada, tetapi ini lambat dan boros, terutama dengan cadangan yang sangat besar dan terutama jika saya sudah tahu direktori mana yang tidak berubah.

Dengan mengingat hal ini, apakah ada cara untuk memaksa pembuatan tautan keras direktori pada varian unix? ln mungkin tidak bagus karena ini adalah tempat di mana banyak rasa unix membatasi mereka untuk mencegah direktori tautan keras, dan ln versi yang mendukung direktori tertaut keras secara khusus menyatakan bahwa operasi kemungkinan besar akan gagal. Tetapi bagi seseorang yang mengetahui risikonya, dan tahu bahwa kasus penggunaan mereka aman, apakah ada cara untuk benar-benar membuat tautan? Idealnya untuk skrip shell, tetapi jika saya perlu mengkompilasi program kecil untuk melakukannya, saya rasa saya bisa.

Jawaban yang Diterima:

Jangan lakukan ini. Jika Anda ingin memiliki sistem cadangan menggunakan tautan keras untuk menghemat ruang, lebih baik menggunakan rsync dengan --link-dest , yang akan menautkan file tepat untuk menghemat ruang, tanpa menyebabkan masalah yang disebabkannya (yaitu, tautan keras antar direktori adalah kerusakan sistem file, dan akan menyebabkannya melaporkan jumlah inode yang salah + gagal fsck + umumnya memiliki semantik yang tidak diketahui karena bukan DAG ).


Linux
  1. Cara Mengganti Nama Direktori di Linux

  2. Mengapa Tautan Keras Ke Direktori Tidak Diizinkan Di Unix/linux?

  3. Huruf Kecil Semua Direktori Di Bawah Direktori?

  1. Cara Membuat Tautan Lunak dan Keras di Linux

  2. Bagaimana cara membuat perintah khusus di Unix/Linux?

  3. Buat pintasan lain `~~` seperti `~` (direktori home)

  1. 5 contoh untuk membuat banyak direktori di Linux

  2. Mengapa saya tidak dapat membuat tautan keras dari file perangkat selain direktori/dev?

  3. buat direktori home setelah membuat pengguna