"ls" 명령이 어떻게 작동하는지 이해가 안 돼요

"ls" 명령이 어떻게 작동하는지 이해가 안 돼요

폴더의 크기를 확인하고 싶어서 pg_backup다음 명령을 사용했습니다.

[postgres@server02 ~]$ pwd
/var/lib/pgsql

[postgres@server02 ~]$ ls -lh
total 4.0K
drwxr-x---. 7 postgres postgres   86 Oct  6 22:00 pg_backup

위 출력에 표시된 대로 크기는 86바이트입니다.

그러나 pg_backup디렉터리 자체에는 여러 다른 디렉터리가 포함되어 있습니다.

[postgres@server02 ~]$ ls -lh pg_backup
total 0
drwxr-xr-x. 3 postgres postgres 121 Oct  2 23:00 20211002
drwxr-xr-x. 2 postgres postgres 109 Oct  3 22:00 20211003
drwxr-xr-x. 2 postgres postgres 109 Oct  4 22:00 20211004
drwxr-xr-x. 2 postgres postgres 109 Oct  5 22:00 20211005
drwxr-xr-x. 2 postgres postgres 109 Oct  6 22:00 20211006
[postgres@server02 ~]$

그런 다음 이러한 하위 디렉터리 중 하나에 일부 대용량 파일이 포함되어 있습니다.

[postgres@server02 ~]$ ls -lh pg_backup/20211006
total 23G
-rw-r--r--. 1 postgres postgres  23G Oct  6 23:21 file.dump
-rw-r--r--. 1 postgres postgres 418K Oct  6 22:00 backup_dba.dump
-rw-r--r--. 1 postgres postgres 1.4K Oct  6 22:00 backup_postgres.dump
-rw-r--r--. 1 postgres postgres  830 Oct  6 22:00 backup_dwh.dump

실제로 디렉터리에 최대 23GB 크기의 파일이 포함된 더 큰 하위 디렉터리가 많이 포함되어 있는데 왜 ls -lh명령에 크기가 86바이트만 표시되는지 혼란스럽습니다 . 모든 하위 디렉터리의 총 파일 수가 초기 명령에 반영되지 않는 pg_backup이유는 무엇입니까 ?pg_backupls -lh

답변1

ls파일이 소비하는 크기를 표시합니다. 일을 많이 단순화하면 유닉스 계열 시스템의 많은 것들이 파일처럼 보입니다. 일부는 파일 파일, 일부는 소켓 파일, 일부는 기호 링크 파일, 일부는 디렉터리 파일 등입니다. 출력에 표시된 크기 ls는 개체가 사용하는 크기입니다. 그러나 대상 개체의 크기는 고려되지 않습니다.

당신이 찾고있는

du -h -d 0 <directory>

주문하다. 치수는 ls여러분에게 보여줍니다 - 음, 사실은 아닙니다. 예, 디렉터리에 더 많은 하위 디렉터리가 포함되므로 크기가 더 커집니다. 하지만 두 가지 크기는 서로 다른 사항을 측정합니다.

관련 정보