Sponsored Content
Homework and Emergencies Emergency UNIX and Linux Support calculate internal fragmentation in directory Post 302580230 by otheus on Thursday 8th of December 2011 01:51:39 AM
Old 12-08-2011
Ah, maybe the OP wants to know the amount of disk space used (blocks allocated * block size) versus the size of the files in bytes.
Code:
find . \( -type f -o -type d \) -printf "%b %s\n"  |awk '{ blocks+=$1; bytes+=$2; } END { print bytes/(blocks*BLKSZ)} ' BLKSZ=512

Gives me 0.997 for one directory, and 0.955 for another. Normally BLKSZ is 512, irrespective of the underlying filesystem's concept of a 'block'.

To be sure, just do
Code:
mkdir test; cd test;
find . -name . -printf "%b %s\n" | awk '{ print "Block size is " $2/$1 }'

One problem is that this doesn't account for hard-linked files, and therefore whose disk fragmentation would incorrectly be counted double.
 

10 More Discussions You Might Find Interesting

1. IP Networking

IP fragmentation

HI all, I am in urgent need of this answer. In TCP/IP protocol, If the IP datagram size > MTU of the any routing network then the IP fragmentation takes place! Where exactly the Fragmentation takes place? is it at the source network layer or in between at some router? If so, which of the... (1 Reply)
Discussion started by: reddyb
1 Replies

2. Shell Programming and Scripting

How to calculate file's size in directory and subdirectory

Hi, I have written one script to calculate total space of all file in one directory, ignoring subdirectory, it works fine. Now, I've been trying to calculate all files which includes files in any subdirectories. I use recursive function to do this, but it can work only if there is only one... (4 Replies)
Discussion started by: KLL
4 Replies

3. UNIX for Dummies Questions & Answers

Fragmentation command in linux?

Hi, Please let me know more details on fragmentation in redhat linux and command to check fragmented files? Thanks, Bache Gowda (2 Replies)
Discussion started by: bache_gowda
2 Replies

4. Solaris

Fragmentation Ratio

All. How can i calculate the fragmentation ratio on a mounted disk, given that i have no root privilege and i cannot switch to single user mode. (0 Replies)
Discussion started by: Negm
0 Replies

5. UNIX for Dummies Questions & Answers

calculate directory size by year of file

I need to calcualte the size of a directory by the year the files in that directory were created . For example the script will sum up, by year, the number of blocks for that directory and its' subdirectories for files created / accessed in that year. I need a report that would look like... (11 Replies)
Discussion started by: igidttam
11 Replies

6. UNIX for Advanced & Expert Users

Forwarding internal internet packets to internal webserver using iptables

Hi, I need to redirect internal internet requests to a auth client site siting on the gateway. Currently users that are authenticated to access the internet have there mac address listed in the FORWARD chain. All other users need to be redirected to a internal site for authentication. Can... (1 Reply)
Discussion started by: mshindo
1 Replies

7. Shell Programming and Scripting

How to calculate the entropy of a single directory that contains many files

Hello, I'm new member of shell scripting and i face some difficulties. To begin, i try to write an algorithm that calculate from one directory containing nfdump files (288) the entropy of one day 24hours. Each of the file is 5 min interval (nfdump -r nfcapd.200908250000 -s srcip) 1st (nfdump... (0 Replies)
Discussion started by: draxmas
0 Replies

8. Shell Programming and Scripting

Find a particular directory in multiple file systems and calculate total size

Hello : I need some help in writing a ksh script which will find a particular directory in all the file systems in a server and finally report the total size of the direcotry in all the file systems. Some thing like this.. find /u*/app/oracle -type d -name "product" -prune and then... (1 Reply)
Discussion started by: Sam1974
1 Replies

9. IP Networking

IP fragmentation problem

Hello all, I am experiencing a problem with IP fragmentation. I am receiving an udp packet that is larger than the MTU and it is fragmented along the network. I am receiving the two fragments but they are not being reassembled correclty. The MTU of the system is 1500 and I cannot increase it,... (2 Replies)
Discussion started by: arichard
2 Replies

10. Shell Programming and Scripting

Bash to calculate average of all files in directory and output by part of filename

I am trying to use awk to calculate the average of all lines in $2 for every file in a directory. The below bash seems to do that, but I cannot figure out how to capture the string before the _ as the output file name and have it be tab-delimeted. Thank you :). Filenames in... (3 Replies)
Discussion started by: cmccabe
3 Replies
DU(1)							    BSD General Commands Manual 						     DU(1)

NAME
du -- display disk usage statistics SYNOPSIS
du [-Aclnx] [-H | -L | -P] [-g | -h | -k | -m] [-a | -s | -d depth] [-B blocksize] [-I mask] [-t threshold] [file ...] DESCRIPTION
The du utility displays the file system block usage for each file argument and for each directory in the file hierarchy rooted in each direc- tory argument. If no file is specified, the block usage of the hierarchy rooted in the current directory is displayed. The options are as follows: -A Display the apparent size instead of the disk usage. This can be helpful when operating on compressed volumes or sparse files. -B blocksize Calculate block counts in blocksize byte blocks. This is different from the -h, -k, -m and -g options or setting BLOCKSIZE and gives an estimate of how much space the examined file hierarchy would require on a filesystem with the given blocksize. Unless in -A mode, blocksize is rounded up to the next multiple of 512. -H Symbolic links on the command line are followed, symbolic links in file hierarchies are not followed. -I mask Ignore files and directories matching the specified mask. -L Symbolic links on the command line and in file hierarchies are followed. -P No symbolic links are followed. This is the default. -a Display an entry for each file in a file hierarchy. -c Display a grand total. -d depth Display an entry for all files and directories depth directories deep. -g Display block counts in 1073741824-byte (1 GiB) blocks. -h ``Human-readable'' output. Use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte and Petabyte. -k Display block counts in 1024-byte (1 kiB) blocks. -l If a file has multiple hard links, count its size multiple times. The default behavior of du is to count files with multiple hard links only once. When the -l option is specified, the hard link checks are disabled, and these files are counted (and displayed) as many times as they are found. -m Display block counts in 1048576-byte (1 MiB) blocks. -n Ignore files and directories with user ``nodump'' flag (UF_NODUMP) set. -r Generate messages about directories that cannot be read, files that cannot be opened, and so on. This is the default case. This option exists solely for conformance with X/Open Portability Guide Issue 4 (``XPG4''). -s Display an entry for each specified file. (Equivalent to -d 0) -t threshold Display only entries for which size exceeds threshold. If threshold is negative, display only entries for which size is less than the absolute value of threshold. -x File system mount points are not traversed. The du utility counts the storage used by symbolic links and not the files they reference unless the -H or -L option is specified. If either the -H or -L option is specified, storage used by any symbolic links which are followed is not counted (or displayed). The -H, -L and -P options override each other and the command's actions are determined by the last one specified. The -h, -k and -m options all override each other; the last one specified determines the block counts used. ENVIRONMENT
BLOCKSIZE If the environment variable BLOCKSIZE is set, and the -h, -k or -m options are not specified, the block counts will be displayed in units of that block size. If BLOCKSIZE is not set, and the -h, -k or -m options are not specified, the block counts will be displayed in 512-byte blocks. EXAMPLES
Show disk usage for all files in the current directory. Output is in human-readable form: # du -ah Summarize disk usage in the current directory: # du -hs Summarize disk usage for a specific directory: # du -hs /home Show name and size of all C files in a specific directory. Also display a grand total at the end: # du -ch /usr/src/sys/kern/*.c SEE ALSO
df(1), chflags(2), fts(3), symlink(7), quot(8) HISTORY
A du command appeared in Version 1 AT&T UNIX. BSD
November 4, 2012 BSD
All times are GMT -4. The time now is 11:09 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy