Linuxでファイルとディレクトリのサイズを確認するにはどうすればよいですか?


340

Linuxでファイルとディレクトリのサイズを確認するにはどうすればよいですか?を使用するとdf -m、すべてのディレクトリのサイズが最上位に表示されますが、ディレクトリ内のディレクトリとファイルについて、サイズを確認するにはどうすればよいですか?

回答:


533

lsファイルにはducommandを、ディレクトリにはcommandを使用します。

ファイルサイズの確認

ls -l filename   #Displays Size of the specified file
ls -l *          #Displays Size of All the files in the current directory
ls -al *         #Displays Size of All the files including hidden files in the current directory
ls -al dir/      #Displays Size of All the files including hidden files in the 'dir' directory

lsコマンドはディレクトリの実際のサイズを一覧表示しません(なぜですか?)。したがって、duこの目的で使用します。

ディレクトリサイズの確認

du -sh directory_name    #Gives you the summarized(-s) size of the directory in human readable(-h) format
du -bsh *                #Gives you the apparent(-b) summarized(-s) size of all the files and directories in the current directory in human readable(-h) format

含む-h(例について:上記のコマンドのいずれかでオプションls -lh *またはdu -sh)は、(人間が読める形式であなたのサイズを与えるだろうkbmbgb...、)

詳細についてはman ls、およびを参照してくださいman du


7
lsディレクトリのすべてのコンテンツの合計サイズは表示されません。
Maxim Egorushkin 2014年

3
@MaximYegorushkinありがとうございます。修正。
mk ..

2
サイズをメガバイト、ギガなどで確認するにはどうすればよいですか?
フランシスココラレスモラレス

7
@FranciscoCorralesMoralesのls -lhはあなたなどキロバイトMB GBでサイズを表示します
MK ...

4
このduコマンドはファイルのディスク使用量を表示することに注意してください。実際のファイルサイズよりも大きい場合があります。du -d実際のサイズを取得するために使用できますls。詳細:unix.stackexchange.com/a/106278/155224
Lucas Alonso

147

duコマンドがあります。

ディレクトリやファイルのサイズ:

$ du -sh .bashrc /tmp

--apparent-sizeコマンドラインスイッチをls使用すると、実際のディスク使用量ではなく、見かけのサイズ(表示されるもの)を測定できます。


1
サイズをバイトで確認するにはどうすればよいですか(Kilo、Mega、Gigaなど)。
フランシスココラレスモラレス

8
@FranciscoCorralesMorales -hフラグは、ユーザーが判読できる形式の印刷サイズ(例:1K 234M 2G)
Maxim Egorushkin '22

3
これは正しくないと思います。何duんがあるファイルのセットの集計]ディスク使用量ファイルは非常に小さい(つまり2140バイト)であれば、「デュ」の出力であることは、クラスタのサイズだから(私の場合)4キロバイトである、
mfloris

@mfloris --apparent-size次に使用します。
Maxim Egorushkin 2016年

3
私が好きなdu -hs *、現在のディレクトリ内のすべてのファイルのサイズ、およびディレクトリを参照してください。
ジョーダンスチュワート

82

ls -sファイルサイズの一覧を表示する場合やls -sh、人間が読めるサイズを希望する場合に使用します。

ディレクトリの使用 du、繰り返しになり、du -h人間が読めるサイズです。


7
ヒントは使用することです。'du -sh *'は、すべてのディレクトリサイズを一覧表示します。:)
Entalpi 2017

35

以下を使用できます。

ls -lh

このコマンドを使用すると、ディレクトリの見かけのスペースとファイルの実際のスペースが表示され、詳細には、それぞれのサイズと作成日の他に、表示されるファイルの名前が表示されます。


ls -lメタデータを含むuファイルサイズを提供しますか?私がしようとしたファイルのいずれかのわずか4キロバイト大きくなるように思われるよう
Jun711

22

ファイルサイズ(MB)

ls -l --b=M  filename | cut -d " " -f5

GBのファイルサイズ

ls -l --b=G  filename | cut -d " " -f5

2つのフィールドを出力として取得するにはどうすればよいですか?
surbhiGoel

17

素晴らしいものもあります ncduユーティリティあります。サブフォルダとファイルに関する詳細情報でディレクトリサイズを表示できます。

取り付け

Ubuntu:

$ sudo apt-get install ncdu

使用法

ncdu [path]コマンドラインに入力するだけです。パスを分析するための数秒後、次のようなものが表示されます。

$ ncdu 1.11 ~ Use the arrow keys to navigate, press ? for help
--- / ---------------------------------------------------------
.  96,1 GiB [##########] /home
.  17,7 GiB [#         ] /usr
.   4,5 GiB [          ] /var
    1,1 GiB [          ] /lib
  732,1 MiB [          ] /opt
. 275,6 MiB [          ] /boot
  198,0 MiB [          ] /storage
. 153,5 MiB [          ] /run
.  16,6 MiB [          ] /etc
   13,5 MiB [          ] /bin
   11,3 MiB [          ] /sbin
.   8,8 MiB [          ] /tmp
.   2,2 MiB [          ] /dev
!  16,0 KiB [          ] /lost+found
    8,0 KiB [          ] /media
    8,0 KiB [          ] /snap
    4,0 KiB [          ] /lib64
e   4,0 KiB [          ] /srv
!   4,0 KiB [          ] /root
e   4,0 KiB [          ] /mnt
e   4,0 KiB [          ] /cdrom
.   0,0   B [          ] /proc
.   0,0   B [          ] /sys
@   0,0   B [          ]  initrd.img.old
@   0,0   B [          ]  initrd.img
@   0,0   B [          ]  vmlinuz.old
@   0,0   B [          ]  vmlinuz

現在ハイライトされている要素をdで削除し、CTRL+ で終了しますc


15

ls -l --block-size = Mを指定すると、長い形式のリストが表示され(実際にファイルサイズを確認する必要があります)、ファイルサイズを最も近いMiBに切り上げます。

MiB(2 ^ 20バイト)単位ではなくMB(10 ^ 6バイト)が必要な場合は、代わりに--block-size = MBを使用します。

Mサフィックスをファイルサイズに付加したくない場合は、-block-size = 1Mのようなものを使用できます。これを提案してくれたStéphaneChazelasに感謝します。

これはlsのmanページで説明されています。man lsとSIZEを検索します。MB / MiB以外の単位も可能で、その外観(私は試していません)から任意のブロックサイズも可能です(必要に応じて、ファイルサイズを412バイトブロックの数として見ることができます)に)。

--block-sizeパラメータはOpen Groupのlsの上位にあるGNU拡張であるため、GNUユーザーランドがない場合(ほとんどのLinuxインストールで可能)、これは機能しない可能性があります。GNU coreutils 8.5のlsは、上記の--block-sizeをサポートしています。


13

選択したディレクトリに移動して実行します。

$ du -d 1 -h

どこ:

-d 1 is the depth of the directories

-h is the human-readable option

次のように表示されます。

0   ./proc
8.5M    ./run
0   ./sys
56M ./etc
12G ./root
33G ./var
23M ./tmp
3.2G    ./usr
154M    ./boot
26G ./home
0   ./media
0   ./mnt
421M    ./opt
0   ./srv
2.6G    ./backups
80G .

9

スクリプトで使用する場合は、を使用してくださいstat

$ date | tee /tmp/foo
Wed Mar 13 05:36:31 UTC 2019

$ stat -c %s /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 05:36 /tmp/foo

これにより、バイト単位のサイズが得られます。man statその他の出力形式オプションについては、を参照してください。

OSX / BSDと同等です

$ date | tee /tmp/foo
Wed Mar 13 00:54:16 EDT 2019

$ stat -f %z /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 00:54 /tmp/foo

7

私はいつも次のことをしています。

$ du -sh backup-lr-May-02-2017-1493723588.tar.gz

注意:

-s, --summarize
            display only a total for each argument
-h, --human-readable
            print sizes in human readable format (e.g., 1K 234M 2G)

7

以下のコマンドを使用して、人間が読める形式のファイルのリストを取得できます。

ls -lrtsh


5

ディレクトリの合計サイズまたはファイル使用の合計サイズを取得するには、

du -csh <directory or filename*> | grep total

5

-h引数を付けてlsコマンドを使用します:[root @ hots19 etc]#h ls -lh
:人間が読めるようにします。

Exemple: 
    [root@CIEYY1Z3 etc]# ls -lh
    total 1.4M
    -rw-r--r--.  1 root   root      44M Sep 15  2015 adjtime
    -rw-r--r--.  1 root   root     1.5K Jun  7  2013 aliases
    -rw-r--r--   1 root   root      12K Nov 25  2015 aliases.db
    drwxr-xr-x.  2 root   root     4.0K Jan 11  2018 alternatives
    -rw-------.  1 root   root      541 Jul  8  2014 anacrontab
    -rw-r--r--.  1 root   root      55M Sep 16  2014 asound.conf
    -rw-r--r--.  1 root   root       1G Oct  6  2014 at.deny

4

私はUbuntu 16.04のユーザーですが、このllコマンドがディレクトリの内容を確認する最も簡単な方法であることがわかりました。すべてのLinuxディストリビューションがこのコマンドをサポートしているわけではないことに気付きましたが、ディストリビューションごとに回避策/インストールがあるはずです。

例:

user@user-XPS-15-9560:/$ ll
total 188
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ./
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ../
drwxr-xr-x   2 root root  4096 Jan 22 15:13 bin/
drwxr-xr-x   4 root root 12288 Jan 29 11:35 boot/
drwxr-xr-x   2 root root  4096 Sep  3 18:14 cdrom/
drwxr-xr-x  20 root root  4440 Feb  5 08:43 dev/
drwxr-xr-x 153 root root 12288 Feb  2 15:17 etc/
drwxr-xr-x   4 root root  4096 Sep  3 18:15 home/
...

私にとっての最大の利点は、すばやく簡単に使用できることです。

更新:私が知らなかったのは、Ubuntuでは事前構成されたエイリアスであることです。alias ll="ls -la"コマンドラインで実行するか、.bashrc構成ファイルに次のエントリを追加することで、自分で簡単に設定できます。

sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc

3

du -sh [file_name]

特定のファイルのサイズを取得するために完全に動作します。


1
これは出力をビットまたはバイトで示していますか?
Embedded_Mugs

3

必要なのはある-l--block-sizeのフラグ

作業ディレクトリの下のすべてのファイルとディレクトリのサイズ(MB単位)

ls -l --block-size=M

作業ディレクトリの下のすべてのファイルとディレクトリのサイズ(GB単位)

ls -l --block-size=G

特定のファイルまたはディレクトリのサイズ

ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/

ls --help

-l 長いリスト形式を使用する

--block-size=SIZESIZE印刷する前にサイズをスケーリングします。たとえば、 '--block-size=M'サイズを1,048,576バイト単位で出力します。SIZE以下のフォーマットを参照してください

SIZE整数とオプションの単位です(例:10Mは10 * 1024 * 1024)。単位は、K、M、G、T、P、E、Z、Y(1024の累乗)またはKB、MB、...(1000の累乗)です。



2

ファイルサイズディスク使用量を区別する必要があります。2つの主な違いは、ファイルが「断片にカット」されてブロックに格納されるという事実に由来します。

最新のブロックサイズは4KiBであるため、ファイルのサイズに関係なく、ファイルは4KiBの倍数のディスク領域を使用します。

コマンドを使用すると、stat両方の図を並べて表示できます。

stat file.c

ディレクトリのよりコンパクトなビューが必要な場合はls -ls、を使用できます。これにより、1KiB単位で使用できます。

ls -ls dir

また du 1KiB単位で、あなたの本当のディスク使用量を与える、もしくはますdutree-uフラグ。

例:1バイトファイルの使用

$ echo "" > file.c

$ ls -l file.c
-rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ ls -ls file.c
4 -rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ du file.c
4 file.c

$ dutree file.c
[ file.c 1 B ]

$ dutree -u file.c
[ file.c 4.00 KiB ]

$ stat file.c
 File: file.c
 Size: 1 Blocks: 8 IO Block: 4096 regular file
Device: 2fh/47d Inode: 2185244 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ nacho) Gid: ( 1000/ nacho)
Access: 2018-04-30 20:41:58.002124411 +0200
Modify: 2018-04-30 20:42:24.835458383 +0200
Change: 2018-04-30 20:42:24.835458383 +0200
 Birth: -

さらに、最新のファイルシステムでは、スナップショット、スパースファイル( 穴のある、状況をさらに複雑にするている。

詳細については、この記事をご覧ください。Linuxでのファイルサイズについて


1

Linuxではls -shを使用できます。並べ替えもできます。ファイルのサイズを確認するディレクトリに移動する必要もあります。


1

特定のディレクトリに移動し、以下のコマンドを実行します

# du -sh * 

4.0K    1
4.0K    anadb.sh --> Shell file
4.0K    db.sh/    --> shell file
24K     backup4/  --> Directory
8.0K    backup6/  --> Directory 
1.9G    backup.sql.gz  --> sql file

0

使用できます ncduここでディスク使用量アナライザー。ncursesインターフェイスでファイルとディレクトリのサイズを表示します。各ディレクトリに移動して、同じインターフェイスからファイルサイズを確認できます。

インストールするには

$ sudo apt-get install ncdu

分析します

$ ncdu <directory>

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.