Linux에서 du 명령 출력을 크기별로 정렬
크기에 따라 정렬된 출력과 함께 du 명령을 사용하는 방법을 알아보세요.
du 명령은 Linux에서 디렉터리와 파일이 사용하는 공간을 찾는 데 사용됩니다. 이는 가장 큰 크기와 가장 작은 크기를 갖는 파일과 디렉터리를 찾을 수 있음을 의미합니다.
그러나 기본적으로 du 명령을 사용하면 출력을 크기별로 정렬할 수 없습니다.
그렇다면 du 명령 출력을 크기별로 어떻게 정렬합니까? 단순한!
출력을 sort 명령으로 파이프합니다. 그리고 이 튜토리얼에서는 출력을 크기별로 정렬하는 방법에 대한 몇 가지 예를 공유하겠습니다.
du 명령 출력을 정렬하는 방법
앞서 언급했듯이 du 명령에는 출력을 정렬하는 기능이 내장되어 있지 않으므로 출력을 sort 명령으로 파이프해야 합니다.
가장 간단한 형태로 보면 다음과 같습니다.
du /path/to/directory | sort
그러나 보시다시피 출력은 사람이 읽을 수 없으며 표시할 항목 수를 제어할 수도 없습니다.
그리고 출력을 조정하기 위해 여러 플래그를 사용하는 개념이 있습니다.
예를 들어 위와 동일하지만 사람이 읽을 수 있는 형식으로 출력하려면 다음과 같이 -h
플래그를 사용할 수 있습니다.
du -h /path/to/directoy | sort -rh
du 명령과 함께 -r
플래그를 사용한 이유는 du 명령의 출력을 반전시켜 출력을 내림차순(가장 큰 파일에서 가장 작은 파일 순으로)으로 표시하기 위한 것입니다. ).
그리고 du 명령을 사용하여 수행할 수 있는 다른 작업을 보여 드리겠습니다.
1. 가장 큰 파일 상위 10개 찾기
이전에는 파일을 내림차순으로 정렬하는 방법을 설명했지만 이제 원하는 것은 가장 큰 파일 10개입니다.
이를 위해서는 처음 10줄을 제외한 출력을 잘라야 하며 이를 위해 head 명령에 파이프하겠습니다.
du -h /path/to/directory | sort -rh | head -n 10
2. 파일 검색 깊이 지정
모르시는 분들을 위해 말씀드리자면, 디렉터리 내부에 하위 디렉터리가 있으며 체인은 마지막 하위 디렉터리가 나타날 때까지 계속됩니다.
기본적으로 du 명령은 재귀 검색을 시작합니다. 즉, 마지막 하위 디렉터리가 나타날 때까지 검색하므로 이 동작을 원하지 않을 수 있습니다.
파일을 검색하려는 깊이를 지정하려면 --max-length
플래그를 사용할 수 있습니다.
예를 들어, 최대 깊이 2를 찾으려면 --max-length=2
를 사용하고 구문은 다음과 같습니다.
du -h --max-depth=2 /path/to/directory | sort -rh
또는 --max-length
플래그를 사용하여 가장 큰 파일 10개를 찾으려면 다음 구문을 참조할 수 있습니다.
du -h --max-depth=2 /path/to/directory | sort -rh | head -n 10
3. 파일 형식을 기준으로 파일 정렬
이것은 흥미로운 것입니다. 파일을 몇 번이나 찾았지만 파일 이름을 기억하지 못하셨나요? 여러 번(적어도 나에게는 그런 일이 일어났습니다).
그러나 공통점 중 하나는 파일 형식을 알고 있다는 것입니다. 예를 들어 스크립트 이름을 잊어버렸을 수도 있지만 .sh
확장자는 확실합니다.
du 명령을 사용하면 파일을 정렬할 수 있어 관련성이 높아집니다.
파일 유형을 기반으로 하는 소프트 파일에 du 명령을 사용하려면 다음과 같이 디렉토리 경로 끝에 파일 유형을 추가하기만 하면 됩니다.
du -h /path/to/directory*.<File_extension> | sort -rh
예를 들어 모든 .mkv
파일을 정렬하려면 다음을 사용합니다.
du -h ~/Downloads/*.mkv | sort -rh
4. 특정 파일 크기 범위 내에서 파일 정렬
특정 크기 범위 내에서 파일을 정렬하는 것은 파일을 정렬하는 가장 좋은 방법 중 하나입니다. 안타깝게도 sort 명령에는 이를 수행하는 내장 기능이 없습니다.
여기에서 검색을 시작하기 위한 최소 또는 최대 임계값을 선언함으로써 find 명령이 개입됩니다.
이 섹션에서는 다음과 같은 가능성을 안내해 드리겠습니다.
주어진 크기보다 작은 파일 찾기
지정된 크기보다 큰 파일 찾기
주어진 범위(x보다 크고 y보다 작음) 내에서 파일을 찾습니다.
그럼 첫 번째부터 시작해 보겠습니다.
특정 크기보다 작은 파일 정렬
지정된 크기보다 작은 파일을 정렬하려면 다음과 같이 find 명령을 du 및 sort 명령과 결합해야 합니다.
find ~/Path/to/file -type f -size -<file_size> -exec du -h {} + | sort -rh
여기,
-type -f
: 파일만 검색하겠다는 의미입니다.size
: 크기 매개변수를 기반으로 검색을 시작합니다.-
: 여기서 파일 크기 앞의-
기호는 파일이 지정된 크기보다 작아야 함을 나타냅니다.-exec du -h {}
: 사람이 읽을 수 있는 플래그로 활성화된 du 명령을 실행합니다.sort -rh
: 사람이 읽을 수 있는 플래그(-h)와 함께 sort 명령을 역으로 사용합니다.
1GB 미만의 파일을 찾고 싶다면 다음을 사용하겠습니다.
find ~/THE_DU/ -type f -size -3G -exec du -h {} + | sort -rh
지정된 크기보다 큰 파일을 정렬합니다.
위 명령을 약간 변경하면 지정된 크기보다 큰 파일을 찾을 수 있습니다.
find ~/Path/to/file -type f -size +<file_size> -exec du -h {} + | sort -rh
보시다시피, 파일 크기 앞에 +
기호를 사용하기만 하면 주어진 범위보다 큰 파일을 정렬합니다.
예를 들어, 여기에서는 3GB보다 큰 파일을 정렬했습니다.
find ~/Downloads/ -type f -size +3G -exec du -h {} + | sort -rh
주어진 범위 내에서 파일 정렬
제목에서 짐작할 수 있듯이 여기서는 파일의 최소 및 최대 범위를 지정할 범위를 생성해야 합니다.
최소 범위를 지정하려면 -size -
를 사용하고 최대 범위의 경우 -size +
를 사용하여 구문을 다음과 같이 만듭니다.
find ~/Path/to/file -type f -size +<file_size> -size -<file_size> -exec du -h {} + | sort -rh
예를 들어, 3GB에서 5GB 사이의 파일을 정렬하려면 다음을 사용합니다.
find ~/Downloads/ -type f -size +3G -size -5G -exec du -h {} + | sort -rh
다음: du 명령에 대한 현대적인 대안
du 명령에 대한 현대적인 대안을 찾고 있거나 du 명령의 더 나은 버전을 원한다면 duf 명령을 사용해 보아야 합니다.
du와 df를 현대적이고 다채로운 출력과 결합한 것이며 Linux에서 duf 명령을 설치하고 사용하는 방법은 다음과 같습니다.
du 명령을 사용하여 파일을 쉽게 정렬할 수 있었으면 좋겠습니다.