Emacs에서 폴더 크기를 어떻게 표시합니까?

Emacs에서 폴더 크기를 어떻게 표시합니까?

나는 디렉토리 목록을 보기 위한 dired 및 dired+ 설정을 가지고 있으며 이를 파일 이동/복사를 위한 파일 관리자로 사용합니다. 현재 dired는 모든 디렉토리의 모든 하위 디렉토리에 대한 크기로 '0'을 나열합니다.

폴더 크기를 계산하고 표시하고 싶습니다. 모든 버퍼의 모든 폴더에서 이 작업을 수행하고 싶지 않기 때문에 키 입력/마우스 클릭에 바인딩하고 싶습니다.

현재로서는 "탐색기에서 열기"(Windows에서는 w32-shell-execute, gnome에서는 gnome-open)를 "O"에 바인딩하고 Alt+Enter를 사용하여 하위 디렉터리 크기를 계산합니다.

답변1

이것Emacs 위키 페이지선택한 파일 및 디렉터리의 크기를 계산하려면 다음 코드 조각을 사용하는 것이 좋습니다.

 (defun dired-get-size ()
  (interactive)
  (let ((files (dired-get-marked-files)))
    (with-temp-buffer
      (apply 'call-process "/usr/bin/du" nil t nil "-sch" files)
      (message "Size of all marked files: %s"
               (progn 
                 (re-search-backward "\\(^[0-9.,]+[A-Za-z]+\\).*total$")
                  (match-string 1))))))

 (define-key dired-mode-map (kbd "?") 'dired-get-size)

내가 올바르게 이해했다면 Dired 버퍼 값을 직접 업데이트하고 싶을 것입니다. 저는 Dired의 내부 구조에 대해 잘 알지 못하지만 그렇게 어렵지는 않을 것 같습니다.

답변2

Emacs 버전이 24.4보다 크면 다음을 시도해 볼 수 있습니다.dired-du도서관. ELPA 저장소에서 사용할 수 있습니다.

이 lib를 설치한 후에는 다음을 수행할 수 있습니다. 현재 버퍼가 Dired 모드에 있으면 다음을 수행할 수 있습니다.

C-x M-r

이는 `dired-du-mode'를 토글하고 Dired 버퍼에 있는 'in place' 디렉토리의 재귀 크기를 표시합니다. 새로운 Dired 버퍼를 방문하면 모드를 끌 때까지 재귀 버퍼도 표시됩니다.

또 다른 팁:

C-x C-h

크기 형식을 전환합니다. 3가지 형식이 있습니다:

  1. `ls' 명령의 기본값입니다.

  2. 사람이 읽을 수 있는 형식입니다.

  3. 천 단위 쉼표 구분 기호가 있는 숫자 형식입니다.

크기 선택이 지속되도록 `dired-du-size-format' 옵션을 사용자 정의할 수 있습니다.

관련 정보