/etc/*.conf
이 경우 특정 폴더에 있는 파일의 크기를 인쇄하고 싶습니다.
내가 사용할 때 :
cd /etc
du -ch $(ls | grep .conf) | tail -1 | cut -f1
나는 120K를 얻습니다.
내가 사용할 때 :
du -bch $(ls | grep .conf) | tail -1 | cut -f1
나는 46K를 얻습니다. 크기는 동일하지만 바이트 단위여야 합니다. 그렇죠? 그럼 뭔가가 있어야 하는 거죠 120000
, 그렇죠?
내가 사용할 때 :
du -bsh $(ls | grep .conf) | tail -1 | cut -f1
1.3K 받았는데 이 사람은 누구죠?
답변1
du -hc
파일 크기를 파일 시스템 블록 크기(일반적으로 4K)의 배수로 표시합니다. 이는 나열된 파일의 실제 디스크 사용량입니다. 이 -h
옵션은 사람이 읽을 수 있는 형식(K/M/G)으로 치수를 인쇄하고, 이 -c
옵션은 목록 끝에 전체 치수를 인쇄합니다.
[root@testvm1 etc]# du -hc *.conf
4.0K asound.conf
4.0K chrony.conf
4.0K dracut.conf
....
4.0K vconsole.conf
4.0K yum.conf
104K total
du -bch
를 사용하면 -b
인수는 파일 크기를 바이트 단위로 나열합니다. 그러나 이 옵션은 --apparent-size
디스크 사용량이 아닌 파일의 겉보기 크기를 표시한다는 의미이기도 합니다. 이로 인해 일반적으로 총계가 낮아집니다.
[root@testvm1 etc]# du -bch *.conf
55 asound.conf
1.1K chrony.conf
1.3K dracut.conf
....
41 vconsole.conf
970 yum.conf
32K total
du -sh
-s
각 매개변수의 전체 크기를 표시하는 이 옵션을 사용합니다 . 이 옵션은 일반적으로 디렉터리와 함께 사용됩니다. 이 옵션은 파일 목록에 대해 사용될 때 -s
특별한 출력을 생성하지 않습니다 . 명령의 출력은 du -bsh
목록의 마지막 파일 크기일 가능성이 높습니다.
이 -b
옵션은 --apparent-size --block-size=1
단위를 바이트로 유지하면서 블록 크기 계산을 사용하려면 이 --block-size
옵션만 사용하십시오.
[root@testvm1 etc]# du --block-size=1 -c *.conf
4096 asound.conf
4096 chrony.conf
4096 dracut.conf
...
4096 vconsole.conf
4096 yum.conf
106496 total
답변2
du
없이 결과를 확인해야 합니다.| tail -1 | cut -1
(-h 옵션을 무시하고 k, M만 추가하세요...)
(기준으로http://man7.org/linux/man-pages/man1/du.1.html)
-c
모든 파일의 디스크 사용량과 총계를 인쇄합니다. 파일 시스템 형식에 따라 파일의 디스크 사용량이 실제 크기보다 클 수 있습니다.)
-bc
디스크에서 사용하는 크기가 아닌 "실제" 크기를 인쇄합니다.
-bs
제공된 각 파일/폴더의 총 "실제" 크기만 인쇄됩니다 du
. 각 파일을 자세히 살펴보면 각 *.conf 파일의 크기가 계산되며 마지막 줄은 사용자가 제공한 마지막 *.conf 파일의 크기입니다.
추신: 아마도 다음과 같이 할 수 있습니다. du -bch *.conf
결과에 대해 grep 대신 ls를 실행하는 것입니다.