Existe-t-il un moyen d'obtenir rapidement une taille précise pour un répertoire (y compris, récursivement, tous ses sous-répertoires)? Je ne veux pas les tailles des sous-répertoires, je veux juste dire qu'elles devraient être récursivement incluses dans la taille totale rapportée.
A défaut, un moyen d'obtenir une taille approximative? Je pense que quelque chose dans le sens de df
cela produit une réponse rapide pour l'ensemble du système de fichiers, mais cette fois pour un répertoire spécifique (et ses sous-répertoires).
Les solutions utilisant du
semblent prendre du temps lorsqu'un répertoire donné contient des milliers de sous-répertoires.
du
est la seule méthode que je connaisse. Le problème est que les données sont réparties dans toute la hiérarchie et doivent donc être compilées par un outil pour obtenir les chiffres.Réponses:
Je trouve que c'est assez utile.
ou pour obtenir une ventilation des répertoires internes
puis avec une sorte s'il a beaucoup de sous-répertoires
La raison pour laquelle j'utilise l'option -m est de m'assurer d'obtenir une sortie en mégaoctets. Je trouve que c'est plus facile pour moi de comparer visuellement (lorsque je n'obtiens pas un mélange d'unités, par exemple comparer 999 Ko et 1 Mo contre 999000 Mo et 1000000 Mo), l'avantage supplémentaire est que vous pouvez passer la sortie en tri.
Mettez tout cela en arrière-plan et redirigez la sortie, cela va prendre du temps quelle que soit la méthode utilisée, c'est une traversée de nombreux fichiers qui prendra du temps.
Notez le tri inverse pour que les gros soient au début. Ajoutez ceci au cron run toutes les n minutes.
Ensuite, avec un alias ducache, vous avez une utilisation assez récente du répertoire.
la source
shopt -s dotglob
, sinondu -sm Directory/*
ne comptera pas les fichiers / répertoires cachés.vous donnera un résumé de la taille totale de la sortie au format "humain".
Puisque vous cherchiez une alternative à
du
, j'ai essayéfind
, mais c'est exactement la même chose:la source
du
prend beaucoup trop de temps car cela produit un résultat précis. J'espérais un outil / commande qui fournit une réponse approximative rapide et n 'sale.df
que cela qui fonctionne sur l'ensemble du système de fichiers.Vous n'aimerez peut-être pas ma réponse, mais je pense que la meilleure façon de faire ce que vous voulez est d'exécuter régulièrement les "du -s" en arrière-plan en utilisant cron et de stocker le résultat dans un fichier. Ensuite, lorsque vous souhaitez une valeur approximative, utilisez la valeur du fichier. Vous pouvez décider de la fréquence d'exécution du du. Je ne vois pas de moyen plus rapide d'obtenir la valeur. La commande du est efficace pour ce qu'elle fait.
La seule autre façon de procéder très rapidement est de créer un système de fichiers pour le répertoire, puis df vous obtiendra très rapidement la réponse que vous souhaitez.
S'il est plus rapide de tout savoir sur le système de fichiers sauf votre répertoire, vous pouvez exécuter df pour le système de fichiers, du pour tout autre que votre répertoire et soustraire.
la source
Il ne correspond pas exactement à vos besoins (pas d'impression sur une ligne) mais est plus facile que d'autres solutions:
Cette commande vous donnera la taille du répertoire et du sous-répertoire et la taille du plus gros fichier ou sous-répertoire du répertoire courant.
PS:
head -2
c'est dans le cas où un sous-répertoire prend toute la place du répertoire courant et est à l'écoute avant le courant.la source