Linux list all files by size

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 

Источник

How to List All Files Ordered by Size in Linux

In one of our several articles about listing files using the popular ls command, we covered how to list and sort files by last modification time (date and time) in Linux. In this short handy article, we will present a number of useful ls command options to list all of the files in a certain directory and sort them by file size in Linux.

To list all files in a directory, open a terminal window and run the following command. Note that when ls invoked without any arguments, it will list the files in the current working directory.

In the following command the -l flag means long listing and -a tells ls to list all files including (.) or hidden files. To avoid showing the . and .. files, use the -A option instead of -a .

$ ls -la OR $ ls -la /var/www/html/admin_portal/

List All Files in Linux

To list all files and sort them by size, use the -S option. By default, it displays output in descending order (biggest to smallest in size).

$ ls -laS /var/www/html/admin_portal/

List All Files Sort By Sizes

You can output the file sizes in human-readable format by adding the -h option as shown.

$ ls -laSh /var/www/html/admin_portal/

List Files Sort By Sizes in Linux

And to sort in reverse order, add the -r flag as follows.

$ ls -laShr /var/www/html/admin_portal/

List All Files Sort By Sizes in Reverse Order

Besides, you can list subdirectories recursively using the -R option.

$ ls -laShR /var/www/html/admin_portal/

List Sub-directories Recursively

You will also find the following related articles useful:

If you any other way to list the files ordered by sizes in Linux, do share with us or do you have questions or thoughts to share about this guide? If yes, reach us via the feedback form below.

Источник

How to List or Sort All Files by Size in Linux

The Linux ls command is a handy tool for listing files inside a directory. In the past, we have covered how to list and sort files by last modification time using the ls command.

In this article, we will go a step further and explore ways that you can list all the files in a specific directory and sort them by file size.

Читайте также:  Linux create directory in root

List or Sort All Files by Size in Linux

To list all files contained in a directory, launch your terminal and run the following command. When invoked without any arguments, the ls command simply lists the files and folders inside a directory.

In the following command the -l flag means long listing and -a tells ls to list all files including hidden files – which are prefixed by a period (.) . To avoid displaying the . and .. files, use the -A option instead of -a .

List Files in Linux

List All Files Ordered by Size

To list all the files and sort them by size, use the -S flag. By default, it displays output in descending order (biggest to smallest in size).

List Files by Sizes

You can display the output in a human-readable format by appending the -h option as shown.

List Files Ordered by Sizes

In addition, you can sort in reverse order (from the smallest to the largest) by adding the -r option as shown.

List Files by Reverse Order Size

List or Sort Files by Size According to a Specific File Type

You can list or sort out files by size by applying file type as a filter. For example, to list or sort zipped files by size, use the wildcard symbol as shown.

List Specific File Type by Size

Exclude Directories When Listing or Sorting Files by Size

To exclude directories in listing or sorting files by size, use the following syntax:

Exclude Directory When Listing Files

List or Sort All Files Using a Common Unit Size

In the above examples, the file sizes have been printed in different unit sizes, i.e Kilobytes (k) and Megabytes (M).

To print or display all file sizes in a specific unit, for example in Megabytes, add the —block-size= option specifying Megabytes as M as shown below.

List Files by Megabytes

From the output, you can see the file sizes are now in MB only.

NOTE: For files less than the specified size (in this case MB), the size will be rounded off to the nearest MB. This implies files in Kilobytes and bytes will appear as 1MB. The same will hold true for any specified size.

You can also print the size in KB units by replacing M with k:

List Files by Kilobytes

This time around, the file sizes are accurately displayed in kilobytes since no file is less than a kilobyte, and hence no rounding off to the nearest kilobyte is done.

Conclusion

And that’s it for this lecture. In this article, we have demonstrated how to list or sort files by size in Linux. We hope you found this information insightful.

Источник

List files over a specific size in current directory and all subdirectories

How can I display all files greater than 10k bytes in my current directory and it’s subdirectories. Tried ls -size +10k but that didn’t work.

Читайте также:  Alt linux source list

could you please expand on this question, or at least explain why the two solutions that were posted — and work, are not appropriate to your assignment. (edit: added please)

ls doesn’t have any options to filter output by size. It does have a —size option (with no arguments) which prints the size of each file in blocks. By the way, -size +10k seems like a syntax that is used with find .

Stack Overflow is a site for programming and development questions. This question appears to be off-topic because it is not about programming or development. See What topics can I ask about here in the Help Center. Perhaps Super User or Unix & Linux Stack Exchange would be a better place to ask. Also see Where do I post questions about Dev Ops?

5 Answers 5

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 confuse k with K), my addition, the second part then executes ls -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

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

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

the benefit of doing it with -S and not sort is one, you don’t have to type sort -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

Источник

Оцените статью
Adblock
detector