0% found this document useful (0 votes)
6 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
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 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
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