J'écris un installateur en bash. L'utilisateur ira dans le répertoire cible et exécutera le script d'installation, donc la première action devrait être de vérifier qu'il y a suffisamment d'espace. Je sais que df rapportera tous les systèmes de fichiers, mais je me demandais s'il y avait un moyen d'obtenir l'espace libre uniquement pour la partition sur laquelle se trouve le répertoire cible.
Edit - la réponse que j'ai trouvée
df $PWD | awk '/[0-9]%/{print $(NF-2)}'
Légèrement étrange car df semble formater sa sortie pour s'adapter au terminal, donc avec un long nom de point de montage, la sortie est décalée d'une ligne
-P
drapeau pourdf
, vous obtiendrez tout sur une seule ligne.du -hs .
pour voir l'espace disque utilisé pour le répertoire actuel.Réponses:
Oui:
pour le répertoire courant.
si vous souhaitez vérifier un répertoire spécifique.
Vous pouvez également vérifier la
stat(1)
commande si votre système l'a. Vous pouvez spécifier des formats de sortie pour faciliter l'analyse de votre script. Voici un petit exemple:la source
-k
. (coreutils df utilise par défaut 1k blocs, donc vous êtes assez sûr sur Linux - mais si vous avez des coreutils, vous l'avezstat
, et c'est encore plus sûr - aucune analyse n'est requise).%a*%s
place de%a*%S
. Je ne sais pas s'il s'agit d'une différence ou d'une faute de frappe.%S
(capital) selon la page de manuel de RedHat. Impossible de trouver un système de fichiers%s != %S
auquel j'ai accès sur les quelques RedHats, donc je ne peux pas vérifier :-(df
commande: Signaler l'utilisation de l'espace disque du système de fichiersdu
commande: Estimer l'utilisation de l'espace fichierTapez
df -h
oudf -k
pour répertorier l'espace disque disponible:OU
du
indique l'espace utilisé par un ou plusieurs fichiers ou répertoires:L'
-s
option résume l'espace utilisé par un répertoire et l'-h
option fournit une sortie lisible par l' homme .la source
Je pense que cela devrait être un commentaire ou une modification de la réponse de ThinkingMedia à cette question ( Vérifiez l'espace disque libre pour la partition actuelle dans bash ), mais je ne suis pas autorisé à commenter (pas assez de rep) et ma modification a été rejetée (raison: "cela devrait être un commentaire ou une réponse"). Alors s'il vous plaît, pouvoirs de l'univers SO, ne me damnez pas pour avoir répété et corrigé la "réponse" de quelqu'un d'autre. Mais quelqu'un sur Internet avait tort! ™ et ils ne m'ont pas laissé réparer.
Le code
a un défaut substantiel: oui, il sortira
50G
gratuitement en tant que 50 - mais il sera également en sortie5.0M
en tant que 50 ou3.4G
libre en tant que 34 ou15K
libre en tant que 15.Pour créer un script dans le but de vérifier une certaine quantité d'espace disque disponible, vous devez connaître l'unité par rapport à laquelle vous comparez. Supprimez-le (comme
sed
dans l'exemple ci-dessus), les chiffres n'ont plus de sens.Si vous voulez vraiment que cela fonctionne, vous devrez faire quelque chose comme:
Pour un installateur, cela
df -k $INSTALL_TARGET_DIRECTORY
peut aussi avoir plus de sens quedf -k "$PWD"
. Enfin, veuillez noter que l'--output
indicateur n'est pas disponible dans toutes les versions de df / linux.la source
--output=avail
vous obtenez la taille en octets de cette façon.
la source
--output=avail
Un exemple complet pour quelqu'un qui pourrait vouloir l'utiliser pour surveiller un point de montage sur un serveur. Cet exemple vérifiera si / var / spool est sous 5G et enverra un e-mail à la personne:
la source
Pour connaître l'utilisation du répertoire spécifique dans GB ou TB sous Linux, la commande est,
df -h / dir / rép_interne /
df -sh / dir / rép_interne /
et pour connaître l'utilisation du répertoire spécifique en bits sous linux, la commande est,
df-k / dir / rép_interne /
la source
Tapez le shell de commande:
ou
ou
Il affichera la liste des espaces disque libres pour chaque point de montage.
Vous pouvez également afficher / afficher une seule colonne.
Type:
Remarque: Ici, 3 est le numéro de colonne. Vous pouvez choisir la colonne dont vous avez besoin.
la source