0% found this document useful (0 votes)
8 views

stackoverflow.com-List files over a specific size in current directory and all subdirectories

The document provides a method to list files over a specific size in the current directory and its subdirectories using the 'find' command. It explains how to execute 'ls' with human-readable sizes and how to sort the results by size, including finding the largest file. Additionally, it discusses the differences between using ';' and '+' in the 'find' command execution.

Uploaded by

syb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

stackoverflow.com-List files over a specific size in current directory and all subdirectories

The document provides a method to list files over a specific size in the current directory and its subdirectories using the 'find' command. It explains how to execute 'ls' with human-readable sizes and how to sort the results by size, including finding the largest file. Additionally, it discusses the differences between using ';' and '+' in the 'find' command execution.

Uploaded by

syb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

List files over a specific size in current directory and all

subdirectories
stackoverflow.com /questions/13282786/list-files-over-a-specific-size-in-current-directory-and-all-
subdirectories

find . -size +10k -exec ls -lh {}


\+

the first part of this is identical to @sputnicks answer, and sucesffully finds all files in the directory over 10k (don't
ls -
confuse k with K), my addition, the second part then executes lh or ls that lists(-l) the files by human
readable size(-h). negate the h if you prefer. of course the {} is the file itself, and the \+ is simply an alternative
to \;

which in practice \; would repeat or:

ls -l found.file; ls -l found.file.2; ls -l
found.file.3

where \+ display it as one statement or:

ls -l found.file found.file.2
found.file.3

more on \; vs + with find

Additionaly, you may want the listing ordered by size. Which is relatively easy to accomplish. I would at the -s
ls - sort -
option to ls, so ls and then pipe it to n to sort numerically

which would become:

find . -size +10k -exec ls -ls {} \+ | sort


-n

or in reverse order add an -r :

find . -size +10k -exec ls -ls {} \+ | sort -


nr

finally, your title says find biggest file in directory. You can do that by then piping the code to tail

find . -size +10k -exec ls -ls {} \+ | sort -n | tail


-1 would find you the largest file in the
directory and its sub directories.

note you could also sort files by size by using -S, and negate the need for sort. but to find the largest file you
would need to use head so

find . -size +10k -exec ls -lS {} \+ | head


-1

sort -
the benefit of doing it with -S and not sort is one, you don't have to type n and two you can also use -h
the human readable size option. which is one of my favorite to use, but is not available with older versisions of
ls, for example we have an old centOs 4 server at work that doesn't have -h

1/1

You might also like