Windows dir
디렉터리 목록 명령 끝에는 나열된 파일이 차지하는 전체 공간을 표시하는 줄이 있습니다. 예를 들어, 현재 디렉터리의 모든 파일, 크기 및 크기 합계를 dir *.exe
표시합니다 . Bash의 별칭과 비슷한 기능을 .exe
갖고 싶지만 dir
정확히 어떻게 해야 할지 모르겠습니다.
현재 제가 alias dir='ls -FaGl'
보여 .bash_profile
드리는
drwxr-x---+ 24 mattdmo 4096 Mar 14 16:35 ./
drwxr-x--x. 256 root 12288 Apr 8 21:29 ../
-rw------- 1 mattdmo 13795 Apr 4 17:52 .bash_history
-rw-r--r-- 1 mattdmo 18 May 10 2012 .bash_logout
-rw-r--r-- 1 mattdmo 395 Dec 9 17:33 .bash_profile
-rw-r--r-- 1 mattdmo 176 May 10 2012 .bash_profile~
-rw-r--r-- 1 mattdmo 411 Dec 9 17:33 .bashrc
-rw-r--r-- 1 mattdmo 124 May 10 2012 .bashrc~
drwx------ 2 mattdmo 4096 Mar 24 20:03 bin/
drwxrwxr-x 2 mattdmo 4096 Mar 11 16:29 download/
예를 들어. 대답은 다음에서 비롯됩니다.이 문제:
dir | awk '{ total += $4 }; END { print total }'
이것은 나에게 총계를 제공하지만 디렉토리 목록 자체를 인쇄하지는 않습니다. ls
원하는 매개변수를 전달 dir
하고 전체 목록과 합계를 얻을 수 있도록 이를 한 줄이나 쉘 스크립트로 변경할 수 있는 방법이 있습니까 ? 예를 들어, dir -R *.jpg *.tif
모든 하위 디렉터리에 있는 이러한 파일 형식의 목록과 전체 크기를 얻기 위해 실행하고 싶습니다 . 이상적으로는 각 하위 디렉터리의 크기를 알 수 있으면 좋겠지만 꼭 그럴 필요는 없습니다.
답변1
이 목적을 위한 UNIX 명령이 이미 있습니다.du
그냥 해:
du -bch
규칙에 따라 명령 끝에 하나 이상의 파일 또는 디렉터리 경로를 추가할 수 있습니다. -h
크기를 인간에게 친숙한 형식으로 변환하고 -b
디스크 사용량 대신 파일 크기를 제공하며 -c
마지막에 총계를 제공하는 확장 프로그램입니다.
답변2
당신은 그것을 사용할 수 있습니다du -h -c directory|tail -1
그러면 메모리 사용량 정보가 포함된 줄이 생성됩니다.
답변3
다음 기능은 대부분의 요구 사항을 충족합니다.
dir () { ls -FaGl "${@}" | awk '{ total += $4; print }; END { print total }'; }
...하지만 요청한 내용은 제공되지 않습니다 dir -R *.jpg *.tif
. 왜냐하면 그것이 작동하는 방식이 아니기 때문입니다 ls -R
. 너는 놀고 싶을지도 몰라find
이에 대한 실용성.
답변4
합계를 구하려는 현재 행을 인쇄하세요.
dir | awk '{ print; total += $4 }; END { print "total size: ",total }'