Le site nodump
peut toujours être utilisé par MacOS. A opaque
n'a jamais été utilisé par MacOS ou OS X depuis au moins Snow Leopard.
Voici un exemple de l'utilisation de la fonction nodump
le drapeau du fichier.
Voici la sortie de la commande ls -lO hi.txt bye.txt
. Note bye.txt
a le nodump
drapeau.
-rw-r--r-- 1 davidanderson staff nodump 8 Mar 20 12:13 bye.txt
-rw-r--r-- 1 davidanderson staff - 9 Mar 20 12:13 hi.txt
Ensuite, la commande tar --nodump -cf mytarball hi.txt bye.txt
est exécuté pour créer le fichier d'archive mytarball
. Ensuite, si la commande tar -tvf mytarball
est saisi, le contenu de l'archive sera imprimé. Voici le résultat.
-rw-r--r-- 0 davidanderson staff 9 Mar 20 12:13 hi.txt
Notez que le fichier bye.txt
a été omis de l'archive en raison de la nodump
drapeau.
Voici un exemple de l'utilisation de la fonction opaque
le drapeau du fichier.
Bien que je puisse fournir un exemple, celui-ci ne fonctionnera pas avec MacOS. A la place, l'exemple utilisera la version actuelle de FreeBSD.
Le système d'exploitation MacOS est dérivé de certaines parties de BSD Unix. BSD met en œuvre deux formes d'union : le système -o union
à la commande mount et l'option mount_unionfs
commande. En testant différentes versions d'OS X et de MacOS, j'ai constaté que Snow Leopard implémente bien la commande -o union
tandis que High Sierra et Big Sur ignorent cette option. Ces trois versions n'incluent pas l'option mount_unionfs
commandement. A priori, la opaque
Le drapeau de fichier n'est utilisé que par cette dernière forme de syndicalisation. Ainsi, pour fournir un exemple, je vais me tourner vers FreeBSD, qui inclut l'option mount_unionfs
commandement.
L'idée de base ici est de permettre des modifications sur un montage en lecture seule. Dans l'exemple suivant, je vais supprimer un répertoire contenant un fichier, puis créer un nouveau répertoire vide avec le même nom.
Dans cet exemple, j'ai un DVD avec deux répertoires nommés dog
y cat
. Le répertoire dog
contient le fichier poodle
et le répertoire cat
contient le fichier siamese
. Après avoir placé le DVD dans le lecteur optique, j'ai entré les commandes suivantes en tant qu'utilisateur root pour monter le DVD et voir son contenu. Le répertoire courant est le répertoire personnel de l'utilisateur root. /root
.
mkdir pets
mount -t cd9660 /dev/cd0 pets
ls -lRFo pets
Voici l'exemple de sortie.
Pour permettre les modifications, j'ai créé et monté le répertoire vide changes
en utilisant le -t unionfs
option. Aussi, j'ai imprimé les montages pour pets
. Le site mount
utilise en fait la commande mount_unionfs
pour effectuer le montage.
mkdir changes
mount -t unionfs changes pets
mount | grep pets
Voici un exemple de sortie.
Ensuite, j'ai utilisé les commandes ci-dessous pour supprimer le répertoire nommé dog
et confirmez la modification.
rm -fr pets/dog
ls -lRFo pets
ls -lRFo changes
Vous trouverez ci-dessous un exemple de sortie. Notez que le répertoire dog
n'apparaît plus dans le répertoire pets
. De même, le répertoire changes
semble n'avoir gagné que le répertoire vide cat
.
Cependant, un voile blanc nommé dog
a été ajouté au répertoire changes
et donc le répertoire pets
. Pour voir le voile blanc, le -W
doit être ajoutée à l'option ls
comme indiqué ci-dessous.
ls -lRFoW pets
ls -lRFoW changes
Vous trouverez ci-dessous un exemple de sortie.
Le voile blanc dog
masque le répertoire dog
sur le DVD. Ensuite, j'ai utilisé les commandes ci-dessous pour créer un nouveau répertoire vide nommé dog
et montrer les changements.
mkdir pets/dog
ls -lRFoW pets
ls -lRFoW changes
Vous trouverez ci-dessous un exemple de sortie.
Ici, le voile blanc dog
a été remplacé par le répertoire dog
avec le opaque
drapeau de fichier activé. Ce répertoire masque le répertoire dog
sur le DVD. Pour démontrer la nécessité de la opaque
j'ai utilisé les commandes ci-dessous pour supprimer le drapeau du fichier opaque
et montrer les résultats.
chflags noopaque changes/dog
ls -lRFoW pets
ls -lRFoW changes
Vous trouverez ci-dessous un exemple de sortie.
Sans le opaque
l'indicateur de fichier, le fichier poodle
incorrectement apparaît dans le pets/dog
répertoire.
Les commandes finales ci-dessous annulent simplement tous les montages et les changements effectués dans cet exemple.
umount pets
umount pets
ls -lRFoW pets
ls -lRFoW changes
rmdir pets
rm -fr changes
Vous trouverez ci-dessous un exemple de sortie.
Références
Union des systèmes de fichiers : Architecture, caractéristiques et choix de conception
Systèmes de fichiers de l'Union : Implémentations, partie I
Wikipédia : MacOS
Unionfs : documenter les raisons des répertoires opaques
Commande ls de FreeBSD
Commande de montage FreeBSD
Commande mount_unionfs de FreeBSD
Note : FreeBSD a été exécuté en téléchargeant d'abord le fichier fichier prêt pour la machine virtuelle nommé FreeBSD-12.2-RELEASE-amd64.vmdk.xz
. Ce fichier a été utilisé pour créer une machine virtuelle VirtualBox avec un iMac 2013 comme hôte. Ce fichier devrait également être compatible avec VMware Fusion Player.