Linux show directory size

How do I determine the total size of a directory (folder) from the command line?

The -h flag on sort will consider «Human Readable» size values.

If want to avoid recursively listing all files and directories, you can supply the —max-depth parameter to limit how many items are displayed. Most commonly, —max-depth=1

du -h --max-depth=1 /path/to/directory 

I use du -sh or DOOSH as a way to remember it (NOTE: the command is the same, just the organization of commandline flags for memory purposes)

There is a useful option to du called the —apparent-size. It can be used to find the actual size of a file or directory (as opposed to its footprint on the disk) eg, a text file with just 4 characters will occupy about 6 bytes, but will still show up as taking up ~4K in a regular du -sh output. However, if you pass the —apparent-size option, the output will be 6. man du says: —apparent-size print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in (‘sparse’) files, internal fragmentation, indirect blocks

This works for OS X too! Thanks, I was really looking for a way to clear up files, both on my local machine, and my server, but automated methods seemed not to work. So, I ran du -hs * and went into the largest directory and found out which files were so large. This is such a good method, and the best part is you don’t have to install anything! Definitely deserved my upvote

@BandaMuhammadAlHelal I think there are two reasons: rounding ( du has somewhat peculiar rounding, showing no decimals if the value has more than one digit in the chosen unit), and the classical 1024 vs. 1000 prefix issue. du has an option -B (or —block-size ) to change the units in which it displays values, or you could use -b instead of -h to get the «raw» value in bytes.

Источник

Get Total Size of a Directory in Linux

In Linux, ls -l would list the files and directories in a particular path, with their names, dates, and sizes (disk usage). The first thing you’ll notice using that command is that the size of directories is always shown as 4096 bytes (or 4,0K if you’re using ls -lh ) even though they contain files that are greater than 4 KB in size. The reason is that ls returns meta-data for the directories, not the actual size.

Читайте также:  Can ping linux server

So what’s the shortest and easiest way to get the size of a directory in Linux, you ask? To get the total size of a directory in Linux, you can use the du (disk-usage) command.

In this article, we’ll take a look at some of the most common usages of the du commands, including but not limited to du -sh , du -ch , and du —max-depth .

Getting Size of Directory in Linux with du

To see the full description and argument list of du command, refer to the man du .

If we type du without any arguments, it will list all the directory names and sizes for the current working directory and all subdirectories recursively:

$ du 2156 ./corpora/state_union 64 ./corpora/names 7624 ./corpora/conll2002 432 ./corpora/toolbox/rotokas ### .  246984 ./corpora 16792 ./tokenizers/punkt/PY3 36028 ./tokenizers/punkt 49420 ./tokenizers 296408 . 

Get Size of the Current Working Directory

To get the size of the current working directory only, and not the subdirectories, we can use du -s or du —summarize :

We can add the -h parameter to get the size in a more human-readable format:

We can also use du with $PATH parameter to get the size of a directory that is located somewhere other than the current working directory:

$ sudo du /var -sh # or "du -sh /var" if you prefer 11G /var 

Note that you would need to use it with sudo privileges for some directories, otherwise you would get a Permission denied error.

Get Size of First-Level Subdirectories

To get size of first-level subdirectories as well as the total size of the path directory:

$ sudo du /var/* -shc 6,1M /var/backups 144M /var/cache 4,0K /var/crash 7,2G /var/lib 4,0K /var/local 0 /var/lock 3,0G /var/log 4,0K /var/mail 4,0K /var/metrics 4,0K /var/opt 0 /var/run 3,8M /var/snap 52K /var/spool 72K /var/tmp 28K /var/www 11G total 

-c or —total returns the total size of the path ( 11G total ). * lists all the first-level subdirectories in the /var/ directory. We can also add —exclude to exclude any directory:

$ sudo du /var/* -shc --exclude=lib 6,1M /var/backups 144M /var/cache 4,0K /var/crash 4,0K /var/local 0 /var/lock 3,0G /var/log 4,0K /var/mail 4,0K /var/metrics 4,0K /var/opt 0 /var/run 3,8M /var/snap 52K /var/spool 72K /var/tmp 28K /var/www 3,2G total 

Note that excluding lib also affects the total size ( 3,2G total ). This is also equivalent of sudo du /var/ -h —exclude=lib —max-depth=1

$ sudo du /var/ -h --exclude=lib --max-depth=1 4,0K /var/mail 52K /var/spool 3,8M /var/snap 4,0K /var/metrics 144M /var/cache 6,1M /var/backups 72K /var/tmp 4,0K /var/crash 3,0G /var/log 4,0K /var/opt 28K /var/www 4,0K /var/local 3,2G /var/ 

Free eBook: Git Essentials

Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!

—max-depth=N will return all subdirectory levels that are equal or less than the number N . Setting —max-depth to 1 returns the first-level, 2 for the second, and so on.

Читайте также:  Sudo apt get remove linux

Get Size of All Subdirectories

To recursively get all subdirectories of /var/ , you can use sudo du /var/ -h . Or you can pass a number to the —max-depth that you’re sure is greater than or equal to the max level of subdirectory depth: sudo du /var/ -h —max-depth=999 .

The second option is more of a workaround rather than the most efficient way.

Get Size of Directory in Linux with tree —du -h

tree is a recursive directory listing program that will list directories and files in a tree-like format. Note that tree is not installed by default. For Debian/Ubuntu, we can install the tree by running sudo apt install tree .

After the installation complete, we use the tree command to list names and sizes of all directories and files in a particular path, in a tree-like format:

$ tree /var/www/ --du -h /var/www/ ├── [4.2K] demosite │ └── [ 189] index.html └── [ 15K] html └── [ 11K] index.html 23K used in 2 directories, 2 files 

Conclusion

In this article, we learned how to get directory sizes in Linux. You can use these commands on Linux remote machines, servers, and/or Linux machines with or without GUI.

For most of the cases du command would be sufficient. It has also the advantage of being installed by default. On the other hand, the tree command would provide a more visual and detailed user interface to display almost the same results, making it a powerful alternative for du .

Источник

Как посмотреть размер папки в Linux

Посмотреть занимаемое место конкретной директории на диске Linux получится через любой файловый менеджер. Достаточно открыть свойства файла. Но там информация отображается в кратком виде, а нередко нужны подробности. С помощью утилиты ls получить детальные сведения не получится. А вот утилита du для этих целей подойдет отлично.

В данной статье мы расскажем, как посмотреть размер папки в Linux с помощью du. Для этого разберем два примера ее использования.

Как посмотреть размер папки в Linux

Сначала мы опишем, как получить информацию об определенной папке, с учетом или без учета ее вложений. А потом перейдем к подпапкам в конкретном каталоге. Заодно упомянем несколько полезных нюансов работы с du, например, возможность сортировки данных.

1. Определённая папка

В качестве примера возьмем папку Downloads. Команда для вывода ее размера выглядит следующим образом:

sudo du -sh /home/root-user/Downloads

В результате выведется её занимаемое место на диске:

Второй полезный сценарий использования утилиты du заключается в выводе размера всех вложенных папок в определенной директории, без учета файлов внутри. Опять в качестве примера возьмем директорию Downloads. Вот нужная нам команда:

sudo du -h /home/root-user/Downloads

wBQrZNUcmqcUQAAAABJRU5ErkJggg= https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3031391294356171

Выводы

В статье мы вкратце рассказали о том, как посмотреть размер папки в Linux и ее вложений с помощью утилиты du. Заодно упомянули возможность сортировки и другие важные нюансы. А если вам интересны еще сценарии использования du в терминале Linux, то ознакомьтесь с данной статьей. Там подробно разобран ее синтаксис, доступные опции и конкретные примеры.

Читайте также:  Ручная разметка kali linux

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Check folder size in Bash

I’m trying to write a script that will calculate a directory size and if the size is less than 10GB, and greater then 2GB do some action. Where do I need to mention my folder name?

# 10GB SIZE="1074747474" # check the current size CHECK="`du /data/sflow_log/`" if [ "$CHECK" -gt "$SIZE" ]; then echo "DONE" fi 

Since this is a popular question — If any beginner is encountering the answers on this question and wants to learn more about what the heck du is and how everyone knows all these commands: You can type man du in your terminal to lookup the du command in the manual. This will display an output which you can view, and will summarize all the flags like -h, -c, -s, -b, -B, —apparent-size, etc. that answers are you suggesting you use. Then, you can decide for yourself how you best want to use du for your specific use case.

8 Answers 8

which will give you a brief output of the size of your target directory. Using a wildcard like * can select multiple directories.

If you want a full listing of sizes for all files and sub-directories inside your target, you can do:

  • Add the argument -c to see a Total line at the end. Example: du -hcs or du -hc .
  • Remove the argument -h to see the sizes in exact KiB instead of human-readable MiB or GiB formats. Example: du -s or du -cs .

With no directory path specified it will default to the current working directory. so du -hs == du -hs . .

if you just want to see the folder size and not the sub-folders, you can use:

You should know that du shows the used disk space; and not the file size.

You can use —apparent-size if u want to see sum of actual file sizes.

--apparent-size print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indirect blocks, and the like 

And of course theres no need for -h (Human readable) option inside a script.

Instead You can use -b for easier comparison inside script.

But You should Note that -b applies —apparent-size by itself. And it might not be what you need.

-b, --bytes equivalent to '--apparent-size --block-size=1' 

so I think, you should use —block-size or -B

#!/bin/bash SIZE=$(du -B 1 /path/to/directory | cut -f 1 -d " ") # 2GB = 2147483648 bytes # 10GB = 10737418240 bytes if [[ $SIZE -gt 2147483648 && $SIZE -lt 10737418240 ]]; then echo 'Condition returned True' fi 

Источник

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