Je veux copier un dossier de mon RAID X-Serve sur un disque dur externe sur un X-Serve . Les deux disques sont sur le même serveur, donc la copie est assez facile. J'utilise la commande ditto:Bash: Copie un dossier plein de fichiers et de dossiers vers un disque dur externe, mais seulement s'il y a suffisamment d'espace pour compléter la copie
ditto -rsrc /Volumes/WadXServeRaid/Users/ $destinationpath/Users/
Cependant, je ne veux que la copie pour commencer s'il y a suffisamment d'espace sur le disque de destination. Je sais que je peux utiliser la commande DU
pour évaluer le disque de destination, mais je ne sais pas comment obtenir la taille d'un dossier et le comparer à l'espace de destination.
Toutes les suggestions seraient grandement appréciées!
Je suis d'accord avec l'idée générale. Cependant, il y aura des problèmes dans les détails, lorsque les nombres sont très proches: Si le système de fichiers de destination a plus de préfixe par fichier, la copie peut nécessiter beaucoup plus d'espace que l'original. – ndim
Oui, c'est vrai. Une façon possible de le lire (presque) en toute sécurité serait de prendre la taille totale du dossier source et de l'incrémenter, disons, de 10% avant de le comparer à l'espace libre sur le disque de destination. Évidemment, le pourcentage devrait idéalement être déterminé de telle manière qu'il soit suffisamment élevé pour être sûr qu'il y ait assez d'espace (même si un autre utilisateur/programme écrit sur le disque de destination), et en même temps assez bas. ne pas bloquer une copie qui serait sinon complète sans erreur. A condition que le fs soit le même sur les deux disques, cela ne devrait poser aucun problème ... – lightman