Solved

Is there a linux command that I can issue to look for files whose size is larger than 1GB?

Posted on 2010-08-12
10
397 Views
Last Modified: 2013-12-16
I need to monitor my linux system for files that are larger than 1GB.  Is there a command line that I can issue to do that?  And does it run pretty fast?  
0
Comment
Question by:dgintz1217
10 Comments
 
LVL 7

Expert Comment

by:jhp333
ID: 33425113
find . -size 1G -print

where . is the starting directory.
0
 
LVL 23

Expert Comment

by:Maciej S
ID: 33425248
Above will show only 1GB files, not all larger than 1GB.
Try similar one:
find . -size +1G
(-print option is not necessary - it's used by default if no other expression is given).
0
 

Author Comment

by:dgintz1217
ID: 33425268
jhp333- could you help me out by putting that into a bash script that would list out the actual files (like with an ls -l) that only shows the file paths to files that are of that size.  when i ran the command above it gave me the directories as well:

[root@hotel:/var/spool]$find . -size 1G -print
.
./mail
./mail/airlink
./mail/root
./clientmqueue
./clientmqueue/dfn9TEU155002839
./cups
./cups/tmp
./at
./at/.SEQ
./at/a0000101392294
./at/spool
./mqueue
./anacron
./anacron/cron.monthly
./anacron/cron.daily
./anacron/cron.weekly
./repackage
./vbox
./bittorrent
./squid
./cron
./cron/al1
./cron/root
./lpd

And what i'm trying to get is something like this:

[root@hotel:/var/spool]$ls -l ./mail/airlink
-rw-rw---- 1 airlink mail 263336 2010-06-09 08:33 ./mail/airlink
[root@hotel:/var/spool]$ls -l ./mail/root
-rw------- 1 root root 259165938 2010-08-12 17:15 ./mail/root

Also, you can see by the above that those files are NOT 1G+ - did I do something wrong in my command?

Thanks!
0
Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

 
LVL 7

Assisted Solution

by:jhp333
jhp333 earned 333 total points
ID: 33425315
oklit is right. You need + befor 1G
And for the output format you wanted,

find . -size +1G -ls

Not sure why it shows files smaller than 1GB, it shouldn't.
0
 

Author Comment

by:dgintz1217
ID: 33425541
Yes, the + did the trick.  say, as a favor, can i ask if you could put together a small bash script here such that the output would not just be the file names, but an "ls -l" of the file names?
0
 
LVL 7

Accepted Solution

by:
jhp333 earned 333 total points
ID: 33425639
I already answered above for your "ls -l" question.

And for the incorrect size, try this:

find . -size +2097152 -ls

2097152 is number of blocks(512-byte block) for 1GB.
0
 
LVL 2

Assisted Solution

by:ramkumar_rkin
ramkumar_rkin earned 167 total points
ID: 33426866
Try this

find / -type f -size +1048576k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Output :
 find / -type f -size +1048576k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
/proc/kcore: 8.1G
find: /proc/18573/task: No such file or directory
/rs08/u01/app/oragrid/p3731593_10205_Linux-x86-64.zip: 1.1G
0
 

Author Closing Comment

by:dgintz1217
ID: 33428987
This was a very great help and exactly what I was looking for!  Thanks!!!!
0
 
LVL 7

Expert Comment

by:jhp333
ID: 33432069
find utility itself has -printf option for formatting the output. You don't need awk for output formatting.

For example, to get the full path and the size, instead of -ls, use:
-printf "%p %s\n"

0
 

Author Comment

by:dgintz1217
ID: 33438490
Cool.  Didn't know that.  Thanks!
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Over the last ten+ years I have seen Linux configuration tools come and go. In the early days there was the tried-and-true, all-powerful linuxconf that many thought would remain the one and only Linux configuration tool until the end of times. Well,…
Using 'screen' for session sharing, The Simple Edition Step 1: user starts session with command: screen Step 2: other user (logged in with same user account) connects with command: screen -x Done. Both users are connected to the same CLI sessio…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.

789 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question