26 votes

APFS - comment activer la compression transparente

Comment puis-je activer la compression transparente du système de fichiers sur n'importe quel volume APFS ? Ou vérifier si elle est déjà activée ?

Je m'attends à quelque chose de similaire à NTFS. compressed attribut. Selon la Wiki il doit être soutenu.

Est-ce par fichier ou par volume ?

J'utilise Mojave 10.14.0, volumes sans cryptage.

2 votes

Tout d'abord, bienvenue sur Ask Different ! :) J'espère que vous trouverez que ce site a beaucoup à offrir ! Au cas où vous ne l'auriez pas déjà fait, cela vaut la peine de prendre le temps de lire la page d'accueil du site. visite . Bonne chance avec votre question.

0 votes

Les réponses ici contiennent également des informations pertinentes : apple.stackexchange.com/questions/193893/

31voto

Jose Chavez Points 645

La configuration standard de Mojave intègre la compression APFS, mais il n'y a pas d'outils visibles par l'utilisateur qui vous permettent de sélectionner vous-même les fichiers/dossiers à compresser.

Il semble que la commande "ditto" fournie avec MacOS soit censée pouvoir employer la compression sur APFS, mais elle ne fonctionne en fait qu'avec les systèmes de fichiers HFS+.

Cependant, même si aucun outil visible par l'utilisateur n'est livré avec Mojave, les API de niveau développeur sont bien présentes. Il existe un utilitaire tiers qui utilise ces API pour fournir un outil utilisateur permettant de compresser des fichiers/dossiers :

https://github.com/RJVB/afsctool

Vous faites référence à la page wikipedia pour votre affirmation selon laquelle la compression APFS est prise en charge. La page wikipedia fait en fait référence à l'outil mentionné ci-dessus pour cette prise en charge.

Vous pouvez installer afsctool de Homebrew par cette commande :

brew install afsctool

Et vous pouvez installer afsctool de MacPorts par cette commande :

sudo port install afscompress

Vous pouvez compresser un fichier ou un dossier comme suit :

afsctool -c filename

où nom de fichier peut être le nom d'un fichier ou d'un dossier.

Vous pouvez vérifier si un fichier est compressé, et dans quelle mesure, par cette commande :

afsctool -v filename

La fonction de compression intégrée d'APFS est mise en œuvre de la même manière qu'elle l'était dans HFS+. Cette prise en charge a été introduite avec OS X 10.6. Même si elle fait donc partie du système MacOS depuis près de 10 ans, elle n'est pas vraiment utilisée à grande échelle.

D'après mon expérience, cela fonctionne tout simplement (HFS+ ou APFS - peu importe). Cependant, vous pouvez rencontrer un cas limite où un programme rapporte la taille du fichier de manière incorrecte ou quelque chose comme ça. Je n'ai pas encore vu un tel comportement. L'idée générale de la compression transparente est que les programmes utilisateurs n'ont pas besoin de savoir que la compression est utilisée.

0 votes

Merci pour cette information, je n'en avais aucune idée et j'ai supprimé ma "réponse" (non informée).

3 votes

Ahm, "rarement mis en œuvre" ? Lancez un afsctool -v /System/*/*/* (c'est à dire des fichiers individuels, ou wtf, le dossier entier) et vous verrez qu'Apple utilise cela assez largement, depuis le début. Je pense qu'ils sont aussi passés de la compression moyenne à la compression maximale récemment ? [Ensuite, il y a ces bugs étranges et rares : mon binaire grep échoue après traitement, de même que les dépôts git après traitement git, parfois les codes-sigs échouent].

4 votes

Je n'ai pas écrit qu'elle était "rarement mise en œuvre". J'écris qu'il n'est pas largement utilisé - comme dans "pas largement utilisé". en dehors d'Apple . C'est-à-dire qu'en l'absence d'outils visibles par l'utilisateur fournis avec le système d'exploitation, très peu de personnes l'utilisent pour compresser leurs propres données.

14voto

LаngLаngС Points 7522

Q Comment activer la compression transparente ?

Tu ne le fais pas. Vous ne pouvez pas. Mais continuez à lire.

Limites conceptuelles

Elle n'est pas "activée" - pour l'ensemble du système de fichiers - puis constamment appliquée, par exemple pour les fichiers nouvellement créés. Un utilisateur ne peut appliquer rétroactivement cette compression du système de fichiers qu'en émettant certaines commandes directes, à des fichiers et dossiers individuels. Si ces fichiers sont réécrits ou recréés, la compression doit être réappliquée "manuellement".

Utilisation des fonctions de compression du système de fichiers

Ce que vous pouvez faire, c'est compresser de manière transparente des fichiers et des dossiers individuels.
(Une option pour ceci serait d'utiliser ditto ou like dans La réponse de jksoegaard , afsctool, fourchette alternative )

Cette distinction est importante car elle fixe des limites à ce que vous pouvez compresser efficacement.

Ce qu'il faut compresser, et ce qu'il ne faut pas faire

Vous pouvez compresser l'ensemble de votre dossier personnel avec cette méthode.
Mais cela n'a pas beaucoup de sens.

En partie parce que de nombreux types de fichiers sont déjà compressés. JPG, PNG, PDF, zip etc. sont tous des formats qui ont généralement une certaine compression. Les compresser à nouveau ne permet pas de gagner beaucoup d'espace (voire pas du tout), mais ajouterait une pénalité de décompression redondante lors de leur accès.

En partie à cause de la façon dont Apple implémente ses systèmes de fichiers. Les fichiers ne sont pas créés puis ajoutés si vous en modifiez le contenu. Ils sont nouvellement créés et l'ancienne version est détruite. Fichiers nouvellement créés ne comprennent pas, et des dossiers en constante évolution perdre tous les avantages de la compression transparente du système de fichiers la prochaine fois qu'ils seront écrits/transmis au système de fichiers. Cela inclut tous les fichiers temporaires, les fichiers de cache, les fichiers journaux, les fichiers de documents sur lesquels vous travaillez habituellement, de nombreuses préférences, etc.

Ainsi, vous ne devriez l'appliquer qu'aux fichiers qui ne changent pas ou rarement.

Ceux qui sont lus mais pas écrits. Les fichiers d'application sont les meilleurs candidats pour cela. Et souvent un excellent candidat pour le gain d'espace, car certains développeurs ont des habitudes d'empaquetage et de déploiement vraiment atroces de gaspillage et de gonflement inclus.

Outils à utiliser

Sur les systèmes plus anciens : En dehors d'afsctool et de ditto, les outils GUI pour y parvenir sont les suivants <a href="https://itunes.apple.com/us/app/morespace-folder-compression/id521635253?mt=12" rel="nofollow noreferrer">Compression de dossiers MoreSpace </a>(semble être interrompu) ou <a href="http://latenitesoft.com/clusters/" rel="nofollow noreferrer">Clusters </a>(v1.7.2, 13$, dernière mise à jour 2014, également avec des problèmes sur des systèmes plus récents).

Cela signifie que uniquement les options de la ligne de commande fonctionnent actuellement :

Le système intégré ditto --hfsCompression compressera les fichiers, malgré le nom de l'option, sur APFS.

afsctool le fera également, mais seulement une version/fork mise à jour https://github.com/RJVB/afsctool le fait sans beaucoup problèmes. (Comme référencé dans la réponse de @jksoegaard, seulement que l'original fonctionne sur 10.14, mais trop souvent pas avec les fichiers sur APFS).

Notez que la version proposée par homebrew était pendant longtemps la version 1.6.4, qui était dépassée. Cette version a eu des problèmes avec APFS et n'est pas recommandé. À partir d'avril 2022, homebrew utilise également la version forkée 1.7.2.

Pour obtenir la nouvelle version qui fonctionne bien avec APFS, vous devez l'installer à partir des sources ou utiliser Macports pour une installation plus facile (et maintenant homebrew également).

Sur Macports cependant, le binaire installé pour ce fork s'appelle afscompress !
(Si vous port install afsctool vous obtiendrez la version obsolète 1.6.4).

C'était la même chose avec brew install afsctool . Mais depuis avril 2022, le brewed afsctool fonctionne sur APFS/Mojave+ -. y avec le nom de l'exécutable binaire toujours comme l'habituel afsctool !

En d'autres termes : Macports a une version 'fonctionnant bien sur APFS' appelée afscompress, et l'obsolète afsctool, homebrew a maintenant aussi une bonne version avec un nom inchangé.

Précautions à prendre en cas de conséquences inattendues

En outre, il faut être un peu prudent dans son utilisation.

Les résultats inattendus sont très rares, mais existent.

Par exemple, un binaire de grep se met à fonctionner et se comprime git a pour conséquence de rendre vos git-repos illisibles, à moins que vous ne rétablissiez cette compression (les dépôts sont toujours corrects).

Certaines applications GUI effectuent une "détection d'altération maison" qui peut échouer si elles sont compressées de cette manière. Il est possible que vous ne rencontriez jamais ce genre de problème, mais il est toujours préférable d'avoir une sauvegarde prête et de procéder par petites étapes, et non en compressant tout d'un coup.


Toutes les sous-questions ont été répondues :

Q Comment activer la compression transparente du système de fichiers sur tout volume APFS ?

L'outil de choix est maintenant l'outil en ligne de commande afscompress.
Pour compresser votre dossier Documents :

afscompress -c ~/Documents

Q Ou vérifier s'il est déjà activé ?

afscompress FILE ferait ça.

Sortie à prévoir :

 File is HFS+/APFS compressed.

Q Je m'attends à quelque chose de similaire à l'attribut compressé de NTFS. Selon le Wiki, il devrait être pris en charge.

C'est le cas, en quelque sorte, avec quelques réserves.
Depuis OS 10.6.
Mais Apple ne dispose d'aucun outil d'interface graphique permettant à un utilisateur de l'utiliser.
Si un fichier compressé est à nouveau sauvegardé, exporté, etc., le nouveau fichier sera à nouveau décompressé.
La compression utilisée doit donc être réappliquée.

Des informations un peu dépassées ici :
Commandes Unix pour gérer la compression HFS+ dans OS X

Q Est-ce par fichier ou par volume ?

Par dossier.

Q J'utilise Mojave 10.14.0, volumes sans cryptage.

Tant que vous n'utilisez pas l'afsctool obsolète, 10.14 est parfait. APFS est bien. Le cryptage n'a pas d'importance pour cela.

2 votes

Si la compression empêche le fonctionnement d'un binaire ou rend les données illisibles, elle n'est pas transparente. Il est censé être transparent.

1 votes

Si un logiciel provoque des erreurs, alors il n'est pas exempt de bogues ? Pourtant, nous attendons qu'il soit raisonnablement exempt de bogues ? - Transparent" signifie simplement que les opérations de l'utilisateur sur les fichiers sont en général exactement les mêmes pour les fichiers compressés et non compressés, que, par exemple, dans le Finder, vous ne pouvez même pas voir qu'un fichier est compressé de cette manière.

1 votes

TSBAA (cette réponse devrait être acceptée), mais les gens ont tendance à choisir des "solutions" simples.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X