- What’s a command line way to find large files/directories to remove and free up space?
- 13 Answers 13
- How to find all files with size greater than.
- 4 Answers 4
- Find files greater than x kB/MB/GB in size, and also show their size
- See also:
- 3 Answers 3
- Linux Command , how to find files by size larger than x?
- 4 Answers 4
What’s a command line way to find large files/directories to remove and free up space?
What’s odd is I have two servers that are running the same thing. One is at 50% disk usage and the other is 99%. I can’t find what’s causing this.
13 Answers 13
If you just need to find large files, you can use find with the -size option. The next command will list all files larger than 10MiB (not to be confused with 10MB):
If you want to find files between a certain size, you can combine it with a «size lower than» search. The next command find files between 10MiB and 12MiB:
find / -size +10M -size -12M -ls
apt-cache search ‘disk usage’ lists some programs available for disk usage analysis. One application that looks very promising is gt5 .
From the package description:
Years have passed and disks have become larger and larger, but even on this incredibly huge harddisk era, the space seems to disappear over time. This small and effective programs provides more convenient listing than the default du(1). It displays what has happened since last run and displays dir size and the total percentage. It is possible to navigate and ascend to directories by using cursor-keys with text based browser (links, elinks, lynx etc.)
On the «related packages» section of gt5, I found ncdu . From its package description:
Ncdu is a ncurses-based du viewer. It provides a fast and easy-to-use interface through famous du utility. It allows to browse through the directories and show percentages of disk usage with ncurses library.
How to find all files with size greater than.
Is there any GUI software that can explore a tree and find all files with size greater than some amount? Neither Nautilus nor Nemo seem to be able to do this. In my memory, I could do this with PC-Tools in DOS 3.0.
4 Answers 4
sudo apt-get install baobab baobad
There is a bunch more on this question of SuperUser, but for all ends and propose baobad is enough.
Thank you Braiam, but baobab can’t be useful as it won’t have file search/sort option. More, since Unity the menu is broken (no more edit/preferences to exclude files/folder) and I get an error analysing my own «/home/me or some of its subfolders», maybe authorizations of .ssh, and no message to direct me to a log. so. find may work better, but it is not a gui, and everytime (which is not often) it could be useful, in the urgency, I forgot the syntax, so. find is not for my humanity.
@useful there are a bunch more on the SU link, I won’t bother to bring them since. mm. it will give the impression that you want a list and you want not (nor is encouraged in SE), either way, give the link a shot, if you feel that some of them solves your problem. BTW, as you can notice I prefer CLI solutions over GUI’s since. mmm. I’m like that ;).
When I need make more free space on servers I use this command. It find all files bigger then 50 MB and «du -h» make berret list of files and «sort -n» after pipe make list numericcaly sorted by file size.
find / -type f -size +50M -exec du -h <> \; | sort -n
Oh what a nice a handy GUI. It is just too easy for a newb like me, but waiting for the same in assembly language. waiting for the machine code which is the top in elegance, I’ll stick to gnome-search-tool. -1
I know you search GUI tool, but if you will learn more with Bash then you know this in all distros and environments. For easier understanding I explain this for you. If you need I can explain this in more details, it is really easy and very useful.
Thank you zorbon.cz. Sorry for my ironic way, but I have so much other issue with command line tool that should work just as intended but doesn’t, so then I easy get irascible when some answer comes that obviously doesn’t take care of the care I asked with. Well the point is that I’m not that newb, intermediate computers user instead, so I often run in frustration with Linux. yes I know it’s the price of freedom and there is still Windows if I want to switch back. but I put the finger in the shredder. Anyway I recognize your gentle pre-comment on your command line: I didn’t see it at first
My main frustration is how could I dare advise anyone to use this OS when I can’t even help myself so often.
Sorry, maybe one of my reason to answer that is fact that I now use Windows 8.1 🙂 since Windows 8 RTM (more than 2 years) and I can not switch back to linux (and I’d like do it), because there are not alternatives to some tools) and now I donť know «nothing» about GUI. But I see CLI every day as sysadmin (I manages higher tens of servers running on CentOS or some on Debian). I understand your last mention and it is true fact.
gnome-search-tool is what I use. Very simple. It has the «Size is at least» filter where you can specify minimum file size. See screen print for searching my ISOs folder with a minimum size of 10,000,000 KB in size.
Thank you rik.shaw, I completly forgot this since I use unity, and as I thought gnome-search-tool was a feature/companion of Nautilus (what I now know is false) growing . more and more spartan, so I switched to Nemo (which, btw, doesn’t help more in that matter of searching), so I was stuck. I will give a try back to it although I remember issues in gnome-search-tool keeping searching for hours when it met unauthorized directories or files or looping through links. Anyway, even if there isn’t a better tool, at least it was the kind of answer I expected. Thank you again.
Find files greater than x kB/MB/GB in size, and also show their size
I’d like a simple command (perhaps using find ) which finds all files > some size in bytes, kilobytes, megabytes, or gigabytes, and which prints their size as they are found. This command, for instance, finds all files > 10 MB, but does not show their size, unfortunately:
See also:
- Files greater than 1 GB and older than 6 months — doesn’t show size
- Linux show files in directory larger than 1 GB and show size — accepted answer looks more-complicated than expected, and I don’t need sorting.
- Find files greater than X value, sort by size, show in ls format — I don’t need nor want ls format, and main answer may not work with spaces
- https://linuxconfig.org/how-to-use-find-command-to-search-for-files-based-on-file-size
3 Answers 3
Note that the M in find . -size +10M , is a GNU extension. The GNU implementation of find has another extension: -printf that you can use to print the size of those files:
find . -size +10M -printf '%s %p\n'
To report the s ize and p ath of the files that are more than 10MiB (mebibytes, not megabytes¹) large.
Here, you could also use zsh and its stat builtin and glob qualifiers:
zmodload zsh/stat stat -nL +size -- **/*(LM+10)
That prints the size after the file path. Also note that contrary to find , that excludes hidden files by default (you can add them back with the D qualifier).
Or to print r aw on 2 C olumns ( a cross):
stat -nLA report +size -- **/*(LM+10) print -raC2 -- $report
Note that all those -size , %s , +size consider the file’s size, which is not the same as the file’s disk usage² as reported by du (or %b / %k in gfind -printf , or +block in zsh ‘s stat, though du also includes the size of unique files within for files of type directory). find has no predicate to filter files based on their disk usage.
¹ for files larger than 10 MB (megabyte), you’d need -size +10000000c (standard) in find or (L+10000000) in zsh
² bigger files generally take up more disk space, but not necessarily and in any case the relation between the the two is not linear.
Linux Command , how to find files by size larger than x?
I’m trying to find files with size larger than «x» , ex: 32 bytes But what I found in ls —help was only ls -S , that just sort by size and not satisfied my demand I’m new to Linux , I’ve tried Google but I don’t know what keywords should I use to find answer , could somebody give me advice , thank you !
Your question is not about programing but about linux command that would be better in serverfault.com. If you want to ask something about shell script please read this first. stackoverflow.com/help/mcve
4 Answers 4
Try to use the power of find utility.
Find files greater than 32 bytes:
Of course you could also ask for files smaller than 32 bytes:
And files with exact 32 bytes:
For files with 32 bytes or more:
Or not smaller than 32 bytes (the same as above, but written another way):
And files between 32 and 64 bytes:
And you can also apply other common suffixes:
If you get find: illegal option — i error, specify the folder to search in after find . Add a dot to find files in the current folder: find . -size +32k -size -64M
You can change 32 for the size you want. In this case, I used your example.
Both answers you two provided me are excellent 😀 But I think I will give @rslemos the best answer tag since he’s «1 minute earier» , but still thanks to you !
Explanation: Use unix command find Using -size oprator
The find utility recursively descends the directory tree for each path listed, evaluating an expression (composed of the ‘primaries’ and ‘operands’) in terms of each file in the tree.
Solution: According to the documentation
-size n[ckMGTP] True if the file's size, rounded up, in 512-byte blocks is n. If n is fol- lowed by a c, than the primary is true if the file's size is n bytes (charac- ters). Similarly if n is followed by a scale indicator than the file's size is compared to n scaled as: k kilobytes (1024 bytes) M megabytes (1024 kilobytes) G gigabytes (1024 megabytes) T terabytes (1024 gigabytes) P petabytes (1024 terabytes)
Usage: perform find operation with -size flag and threshold measurement arguments: more than(+)/less than(-), number(n) and measurement type (k/M/G/T/P).
Formula: find -size [+/-]
1.Greater Than — Find all files in my current directory (.) that greater than 500 kilobyte
2.Less Than — Find all files in my current directory (.) that less than 100 megabyte.
3.Range — Find specific file (test) in my current directory (.) that greater than 500 kilobyte less than 100 megabyte (500k-1000k)
find . -name "test" -size +500k -size -100M
4.Complex Range with Regex Find all .mkv files in all filesystem (root /) that are greater than 1 gigabyte and created this month, and present info of them.
find / -name "*.mkv" -size +1G -type f -ctime -4w | xargs ls -la