Thunar가 "재귀적" 파일 크기를 표시하도록 하는 방법이 있습니까?

Thunar가 "재귀적" 파일 크기를 표시하도록 하는 방법이 있습니까?

저는 Thunar 1.6.3을 사용하고 있으며 현재 여러 폴더를 보면 다음과 같습니다.

Folder 1        8,2 kB
Folder 2        4,1 kB
Folder 3        4,1 kB
Folder 4        0   kB

이 "크기" 숫자가 어디서 나온 것인지는 확실하지 않지만 폴더에 있는 모든 항목의 실제 크기를 반영하지는 않는다는 것은 확실합니다. 마우스 오른쪽 버튼을 클릭하고 "속성"을 선택하면 폴더가(모두 킬로바이트에 불과하기 때문입니다) 크기) 최대 100GB를 초과합니다.

질문

  • 12.04 및 14.04의 명령줄과 마찬가지로 Thunar가 폴더 크기를 4K와 같이 표시하는 이유는 무엇입니까? 이 숫자는 무엇을 의미하나요?
  • 대신 복합 크기, 즉 폴더와 모든 콘텐츠의 계산된 재귀 크기를 터미널, Thunar 또는 기타 파일 관리자에 표시하는 방법이 있습니까? (주의: 저는 쉘 스크립트 솔루션을 찾고 있는 것이 아닙니다.)

답변1

이를 설명하기 위해 Linux 파일 시스템 구조에 대해 조금 설명해야 합니다. 대부분의 Linux 파일 시스템은 비슷한 작업을 수행하지만 현재 기본값인 ext4를 가정합니다.

파일 시스템 구조

  • inode는 파일 시스템이 논리 단위로 이해하는 기본 블록입니다.
  • 디렉토리 inode에는 다른 inode에 대한 참조가 포함되어 있습니다.
  • 파일 inode에는 파일을 연속되지 않은 방식으로 저장해야 하는 경우를 대비해 메타데이터, 실제 데이터 및 연속 블록에 대한 참조가 포함됩니다.

연결

  • Ext4는 두 종류의 링크를 지원합니다. 하드 및 소프트.
  • 하드 링크는 inode에 대한 직접 참조입니다. 각 파일에는 해당 파일이 속한 디렉터리의 하드 링크가 하나 이상 있습니다.
  • 디렉토리는 inode 참조 그룹에 대한 정보가 있는 inode일 뿐이므로 자체 참조하거나 부모를 참조할 수 있습니다. 즉, 폴더는 동일한 폴더의 하위이자 상위가 될 수 있습니다.

좋습니다. 혼란스러워질 수도 있습니다. 설명하겠습니다. 다음과 같이 A, B, C라는 세 개의 폴더가 있다고 가정합니다.

C is in B.  
B is in A.

이제 재미있는 부분은 C가 A와 동일한 inode를 가리켜 순환 참조 루프라고도 불리는 것을 생성할 수 있다는 것입니다. 반복을 시도하면 끝없는 루프가 발생합니다.

  • 소프트 링크는 대상 위치에 대한 디렉터리 경로를 기록하는 일반 파일입니다. 텍스트 줄 대신 다른 위치에 대한 링크로 해석되어야 한다는 점을 파일 시스템에 표시했을 뿐입니다. 예를 들어 Nautilus는 '링크 생성'/'여기에 링크' 옵션을 사용할 때 소프트 링크를 생성합니다.

그래서 무엇?

따라서 크기를 재귀적으로 계산하는 데는 단점이 있습니다. 기본적으로 크기를 재귀적으로 계산하려고 시도하는 것은 좋지 않습니다. 그러나 내가 아는 모든 괜찮은 파일 관리자의 속성 대화 상자에는 재귀적으로 계산된 총 크기가 표시됩니다. 왜냐하면 그것이 일반 사용자가 기대하는 것이기 때문입니다.

윈도우는 문제 없나요?

실제로 Windows는 모든 파일 목록과 크기를 유지 관리하는 NTFS라는 다른 파일 시스템 형식을 사용합니다. 그래서 항상 전체 크기를 쉽게 알 수 있습니다.

그렇다면 NTFS를 사용하면 어떨까요?

이는 Unix 권한 개념( rwx소유자, 그룹 및 유니버스에 대해 별도로)을 지원하지 않으며 이러한 단일 이유 때문에 Linux 파일 시스템으로 사용하기에 적합하지 않습니다. Ext4는 이러한 사소한 불편함이 많은 사람들에게 중요하지 않다는 사실을 많이 보여줍니다.

괜찮은. 필요한 사이즈를 주세요.

시도해 보았 니 du?

어떻게 du작동하나요?

du디스크 사용량을 의미합니다. 실제로 inode 블록의 수를 계산하며 중복 계산되지 않도록 주의합니다. 크기를 더하면 전체 크기가 됩니다.

TL;DR

du -hs <foldername>디스크에 있는 폴더의 실제 크기를 찾는 데 사용됩니다 . man du자세한 내용을 읽어보세요 .

답변2

~에투나르상단 메뉴에서 편집>사용자 지정 작업 구성으로 이동하여 다음을 사용하여 새 사용자 지정 작업을 추가합니다.

  1. 기초적인탭: 임의의 이름 [예. 폴더-파일 크기], 명령 du -h -c %N | grep total | zenity --text-info또는 du -chs %N | zenity --text-info선택한 폴더 및/및 파일 크기에 대한 전체 크기가 표시됩니다.
  2. 출현 조건탭: 모든 상자를 선택합니다.

이 솔루션을 찾았습니다.http://crunchbang.org

답변3

Thunar와 관련된 이 주제에 대한 약간의 상식은 Thunar가 --apparent size 옵션을 사용하거나 사용하지 않고 du와 다른 크기를 보고한다는 것입니다. 나는 제공된 답변이 왜 그럴 수 있는지에 대한 힌트를 제공한다고 생각합니다(아마도 Thunar는 실제로 이러한 동일한 것을 그것이 무엇이든 약간 다르게 계산합니다). 예: 동일한 폴더: (x는 내가 기록하지 않은 나머지임) --apparent-size가 없는 du: 19.x GB du와 --apparent-size:12.x GB Thunar 괄호 안의 Thunar 값은 5.5x GB: 5.9x GB 아마도 결국에는 du의 출력(오래된 것임)을 사용하겠지만 그럼에도 불구하고 이것은 흥미로울 것입니다.

관련 정보