Erklären der -W-Flagge für rm

8

Wofür macht das -WFlag rm(unter BSD oder Mac OS X)?

Laut seiner Manpage versucht das Flag, "die benannten Dateien wiederherzustellen". Und derzeit "kann diese Option nur zum Wiederherstellen von Dateien verwendet werden, die durch Whiteouts abgedeckt sind." Worum geht es hier und wie kann ich es verwenden?

Whymarrh
quelle
Nicht alle Versionen rmunterstützen das -WFlag. Insbesondere die GNU-Coreutils-Version, die von den meisten oder allen Linux-Distributionen verwendet wird, ist dies nicht. rm: invalid option -- 'W'
Keith Thompson
Ich hätte angeben sollen, dass ich mich auf die BSD-Version beziehe.
Whymarrh

Antworten:

16

Das -WFlag ist eine Option, die die meisten Benutzer BSD/OSXniemals verwenden müssen, da es nur für " Union Mounts " gilt. Mit dieser Art der Bereitstellung können einfach mehrere Dateisysteme bereitgestellt werden, die nur als ein Dateisystem angezeigt werden. Um dies weiter zu erklären, hier die Zusammenfassung eines Papiers mit dem Titel " Union Mounts in 4.4BSD-Lite " der Autoren Jan-Simon Pendry und Marshall Kirk McKusick:

Im Gegensatz zu einem herkömmlichen Mount, der den Inhalt des Verzeichnisses verbirgt, in dem er abgelegt ist, zeigt ein Union-Mount eine Ansicht einer Zusammenführung der beiden Verzeichnisse. Obwohl nur das Dateisystem oben im Union-Stapel geändert werden kann, sieht das Union-Dateisystem so aus, als ob alles gelöscht oder geändert werden kann. Dateien in der unteren Ebene können mit Whiteout in der oberen Ebene gelöscht werden. Zu ändernde Dateien werden automatisch in die oberste Ebene kopiert. Diese neue Funktionalität ermöglicht mehrere neue Anwendungen, einschließlich der Möglichkeit, Patches auf eine CD-ROM anzuwenden und symbolische Verknüpfungen zu beseitigen, die von einem Automounter generiert werden. Möglich ist auch die Bereitstellung von Benutzeransichten des Dateisystems, die private Ansichten eines gemeinsam genutzten Arbeitsbereichs ermöglichen.

In diesem Dokument werden auch Whiteout-Vorgänge erläutert:

Wenn ein Name aus dem Namespace der unteren Ebene entfernt wird, wird in der oberen Ebene ein Whiteout erstellt. Ein Whiteout bewirkt, dass der Name in der unteren Ebene ausgeblendet wird. Zu den Vorgängen, bei denen ein Whiteout erstellt wird, gehören das Aufheben der Verknüpfung, rmdir und das Umbenennen.

Wenn Sie rmdas -WFlag zusammenfassen, wird das in der oberen Ebene erstellte "Whiteout" verwendet, um die in der unteren Ebene "gelöschten" Dateien wiederherzustellen. Informationen zur Verwendung finden Sie im Handbuch .

Steve
quelle