GNU/Linux >> Tutoriels Linux >  >> Linux

Comment dupliquer un fichier sans copier ses données avec Btrfs ?

Je n'ai aucune expérience avec btrfs, mais il est annoncé qu'il peut
dédupliquer les fichiers.

Dans mon application, j'aurais besoin de dupliquer des arborescences de répertoires entières.

D'après ce que j'ai appris, btrfs ne supprime les doublons que lors de certains post-scans, pas
immédiatement. Même en utilisant simplement cp ne semble pas déclencher de
déduplication (au moins, df montre une utilisation accrue du disque dans la
taille des fichiers copiés).

Puis-je éviter de déplacer complètement les données et dire à btrfs directement pour
dupliquer un fichier à un autre emplacement, en clonant simplement ses
métadonnées ?

Essentiellement, similaire à un lien physique, mais avec des métadonnées indépendantes
(autorisations, heures de modification, …).

Réponse acceptée :

Il y a deux options :

  1. cp --reflink=always
  2. cp --reflink=auto

La seconde est presque toujours préférable à la première. Utiliser auto signifie qu'il reviendra à faire une copie conforme si le système de fichiers ne prend pas en charge le reflinking (par exemple, ext4 ou la copie sur un partage NFS). Avec la première option, je suis presque sûr que cela échouera carrément et arrêtera la copie.

Si vous l'utilisez dans le cadre d'un script qui doit être robuste face à des conditions non idéales, auto vous servira mieux.


Linux
  1. Comment créer et monter un système de fichiers Btrfs (expliqué avec des exemples)

  2. Comment écrire un fichier avec C sous Linux ?

  3. Comment puis-je extraire des fichiers sans structure de dossiers à l'aide de tar

  4. Comment ça marche ? Que fait rm ?

  5. Comment copier un fichier sans utiliser scp dans une session ssh ?

Comment étendre l'espace d'échange à l'aide du fichier d'échange sous Linux

Comment éditer un fichier sans changer ses horodatages sous Linux

Comment supprimer des données de fichier Exif avec ExifTool dans Ubuntu 20.04

Comment :une introduction à l'utilisation de Git

Comment convertir des fichiers en différents formats sans utiliser de logiciel

Comment modifier un fichier sur place en utilisant awk ? (comme avec sed -i)