web-dev-qa-db-ja.com

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

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

210
Advait

それは簡単です。ファイルにはlsコマンド、ディレクトリにはduコマンドを使用してください。

ファイルサイズの確認

ls -l filename /* Size of the file*/
ls -l *        /* Size of All the files in the current directory */
ls -al *       /* Size of All the files including hidden files in the current directory */
ls -al dir/    /* 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を参照してください。

360
mk..

duコマンドがあります。

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

$ du -sh .bashrc /tmp

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

118

ファイルサイズを一覧表示するにはls -sを、人間が読めるサイズにls -shを希望する場合はを使用してください。

ディレクトリにはduを使い、人間が読めるサイズにはdu -hを使います。

53
Thor

あなたが使用することができます:

ls -lh

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

21
Yenier Torres

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

Installation

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

13
avtomaton

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をサポートしています。

12
Adi

ファイルサイズ(MB)

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

GB単位のファイルサイズ

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

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

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

NB:

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

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

ls -lrtsh

5
Amit

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

du -csh <directory or filename*> | grep total
3
suhail ahamed F

ファイルサイズ ディスク使用量 を区別する必要があります。この2つの主な違いは、ファイルが「分割されて」ブロック単位で格納されていることです。

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

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

stat file.c

ディレクトリをもっとコンパクトに表示したい場合は、ls -lsを使用できます。これにより、1 KB単位で使用できます。

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: -

さらに、最近のファイルシステムでは、スナップショット、疎ファイル( holes が含まれているファイル)を作成することができます。

あなたはこの記事でより多くの詳細を見ることができます: Linuxでファイルサイズを理解する

2
nachoparker

私は私自身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
2
Matteus

スクリプトで使用している場合は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
2
Bruno Bronosky

ls コマンドに-h引数を付けて実行します。[root @ hots19 etc]#ls -lh
h:人間が読める形式です。

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
1
mkebri

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

$ 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 .
1

あなたはLinuxでls -shを使うことができますあなたはソートをすることもできますあなたはあなたがファイルのサイズをチェックしたいディレクトリに行く必要があります

1
Prem S

特定のディレクトリに移動します それからコマンドの下で実行します

# 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
sachin_ur