
나는 디렉토리 목록을 보기 위한 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가지 형식이 있습니다:
`ls' 명령의 기본값입니다.
사람이 읽을 수 있는 형식입니다.
천 단위 쉼표 구분 기호가 있는 숫자 형식입니다.
크기 선택이 지속되도록 `dired-du-size-format' 옵션을 사용자 정의할 수 있습니다.