2010-08-17 15 views
5

J'ai un dossier contenant les fichiers .tcb et .tch. J'ai besoin de savoir ce que la taille de tous les fichiers .tcb ensemble, respectivement de tous les fichiers .tch est. Je l'ai fait comme ceci:Calculez la consommation totale d'espace de fichiers spécifiques dans le terminal unix.

1) J'ai créé un dossier temporaire puis:

mv *tch temp 

2) puis:

du -sk temp 

J'ai trouvé la commande dans l'Internet et wikipedia dit ce : "du (abréviation de l'utilisation du disque) est un programme Unix standard utilisé pour estimer l'utilisation de l'espace fichier". Je pense que la raison pour laquelle il est dit que c'est une estimation est que s'il y a des liens, alors la taille du lien sera affichée à la place du fichier lié.

Mais si je

ls -l 

dans le dossier temporaire (qui contient tous les * .TCH) fichiers et puis on additionne les tailles qui sont affichées dans le terminal, j'ai une autre taille du fichier. Pourquoi est-ce le cas?

Eh bien, en somme, ce que j'ai besoin est une commande qui me montre le vrai fichier taille de * tous fichiers .TCH dans un dossier, qui peut également contenir autres types de fichiers.

J'espère que n'importe qui peut m'aider avec cela. Merci beaucoup!

Répondre

10

Vous pouvez utiliser l'option -L-du si vous voulez suivre les liens symboliques (qui est, calculer la taille de la cible du lien, et non du lien lui-même). Vous pouvez également utiliser l'option -c pour afficher un total général à la fin.

Armé de ces options, essayez du -skLc *.tch. Pour plus de détails sur du, voir this manpage.

+1

Notez que cela peut ne pas vous donner le résultat attendu si le dossier contient un lien vers un fichier .tch dans le même répertoire. Ce fichier serait compté deux fois: une fois pour le fichier "réel" et une fois pour la version liée. – bta

+0

le dossier ne contient aucun lien donc cette solution semble faire ce que je veux. thx bta – mkn

1

Regardez la page de manuel spécifique pour votre version de du car elles varient considérablement dans la manière dont elles comptent.

« approximative » peut-être parce que:

  1. blocs utilisés ou Octets utilisés peuvent être signalés avec blocs sur-indiquant la taille des fichiers qui ne sont pas des multiples exacts de la taille du bloc, mais représente plus précisément « l'espace utilisé que Je ne peux pas utiliser pour d'autres choses "
  2. Les fichiers Unix peuvent avoir des" trous "créés en cherchant un long chemin et en écrivant. Le système d'exploitation n'alloue pas d'espace pour les trous ignorés.
  3. Les liens symboliques peuvent ou non être déréférencés vers le fichier réel vers lequel ils pointent.

Si vous voulez juste l'bytecount utiliser wc -c *.tcb