Menjelaskan flag -W untuk rm

8

Apa yang dilakukan -Wflag rm(pada BSD atau Mac OS X)?

Menurut halaman manualnya, flag tersebut mencoba untuk "membatalkan penghapusan file yang dinamai." Dan saat ini, "opsi ini hanya dapat digunakan untuk memulihkan file yang tertutup oleh whiteout." Tentang apa semua ini, dan bagaimana saya bisa menggunakannya?

Whymarrh
sumber
Tidak semua versi rmmendukung -Wbendera. Khususnya, versi GNU coreutils, yang digunakan oleh sebagian besar atau semua distribusi Linux, tidak. rm: invalid option -- 'W'
Keith Thompson
Saya seharusnya menyebutkan bahwa saya merujuk ke versi BSD.
Whymarrh

Jawaban:

16

The -Wbendera adalah pilihan yang sebagian besar pengguna BSD/OSXtidak akan perlu digunakan, karena hanya berlaku untuk " serikat gunung ". Jenis mount ini hanya memungkinkan beberapa sistem file untuk dipasang, muncul hanya sebagai satu sistem file. Untuk menjelaskan ini lebih lanjut, inilah abstrak dari sebuah makalah, berjudul " Union Mounts in 4.4BSD-Lite ", oleh penulis, Jan-Simon Pendry dan Marshall Kirk McKusick:

Tidak seperti pemasangan tradisional yang menyembunyikan isi direktori tempat penempatannya, gabungan pemasangan menyajikan pandangan penggabungan dua direktori. Meskipun hanya filesystem di bagian atas tumpukan union yang dapat dimodifikasi, filesystem gabungan memberikan tampilan yang memungkinkan segala sesuatu untuk dihapus atau dimodifikasi. File di lapisan bawah dapat dihapus dengan whiteout di lapisan atas. File yang akan diubah secara otomatis disalin ke lapisan paling atas. Fungsionalitas baru ini memungkinkan beberapa aplikasi baru termasuk kemampuan untuk menerapkan tambalan ke CD-ROM dan menghilangkan tautan simbolis yang dihasilkan oleh automounter. Juga memungkinkan adalah penyediaan tampilan per pengguna dari sistem file, yang memungkinkan tampilan pribadi dari area kerja bersama,

Makalah ini juga membahas operasi pemblokiran:

Jika nama sedang dihapus dari namespace lapisan bawah, whiteout dibuat di lapisan atas. Whiteout memiliki efek menutupi nama di lapisan bawah. Operasi yang menyebabkan whiteout dibuat termasuk batalkan tautan, rmdir dan ganti nama.

Secara keseluruhan, rmdengan -Wflag menggunakan "whiteout" yang dibuat di lapisan atas untuk mengembalikan file "dihapus" dari lapisan bawah. Untuk penggunaan, silakan lihat manual .

Steve
sumber