Linuxのファイルとディレクトリのサイズを確認するにはどうすればいいですか? df -m
を使用すると、最上位にあるすべてのディレクトリのサイズが表示されますが、ディレクトリ内のディレクトリおよびファイルのサイズを確認するにはどうすればよいですか。
それは簡単です。ファイルには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
の場合)、サイズは人間が読める形式(kb
、mb
、gb
、...)になります。
詳しくは、man ls
およびman du
を参照してください。
du
コマンドがあります。
ディレクトリやファイルのサイズ
$ du -sh .bashrc /tmp
--apparent-size
コマンドラインスイッチは、実際のディスク使用量ではなく、見かけのサイズ(ls
が示すもの)を測定します。
ファイルサイズを一覧表示するにはls -s
を、人間が読めるサイズにls -sh
を希望する場合はを使用してください。
ディレクトリにはdu
を使い、人間が読めるサイズにはdu -h
を使います。
あなたが使用することができます:
ls -lh
このコマンドを使用すると、ディレクトリの見かけのスペースとファイルの実際のスペースが表示され、それぞれのサイズと作成日の他に、表示されるファイルの名前も詳細に表示されます。
素晴らしい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
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をサポートしています。
ファイルサイズ(MB)
ls -l --b=M filename | cut -d " " -f5
GB単位のファイルサイズ
ls -l --b=G filename | cut -d " " -f5
私はいつも次のことをしています。
$ 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)
下記のコマンドを使用すると、人間が読める形式のファイルのリストを取得できます。
ls -lrtsh
ディレクトリの合計サイズまたはファイルの合計使用サイズを取得するには、
du -csh <directory or filename*> | grep total
ファイルサイズ と ディスク使用量 を区別する必要があります。この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でファイルサイズを理解する
私は私自身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
スクリプトで使用している場合は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
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
選択したディレクトリに移動して実行します。
$ 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 .
あなたはLinuxでls -shを使うことができますあなたはソートをすることもできますあなたはあなたがファイルのサイズをチェックしたいディレクトリに行く必要があります
特定のディレクトリに移動します それからコマンドの下で実行します
# 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