Centos 서버에서 모든 대용량 파일을 찾으려고 합니다. 이를 위해 다음을 사용하고 있습니다.
find / -maxdepth 10 -size +100000 -ls
-ls
로 변경해 보았지만 -lsh
이는 허용되지 않습니다.
이러한 결과를 사람이 읽을 수 있는 크기(접미사 k, M, ... 사용)로 표시하려면 어떻게 해야 합니까?
답변1
find
와 같은 것은 없습니다 ls
. 원하시면 ls -h
전화하셔야 합니다 ls
.
find / -maxdepth 10 -size +100000 -exec ls -lh {} +
다른 파일 시스템으로의 재귀를 피하기 위해 옵션을 선택하는 것이 좋습니다 -xdev
. 디스크 공간이 걱정된다면 이는 쓸모가 없습니다.
find / -xdev -maxdepth 10 -size +100000 -exec ls -lh {} +
zsh를 쉘로 사용하는 경우 find
대신 glob 한정자를 사용할 수 있습니다. 파일 크기를 제한하는 것은 간단합니다. L
크기 뒤에는 숫자 앞에 선택적 단위가 있을 수 있습니다. 최대 깊이에 관심이 없다면 **/
하위 디렉터리로의 재귀를 사용할 수 있습니다. 최대 깊이에 관심이 있다면 zsh glob 모드에 "maximum"이라는 표현이 없기 때문에 더 문제가 됩니다.N장치 간 재귀를 방지하려면 glob 한정자를 사용하세요 . 장치 번호를 찾아야 합니다. Linux에서 명령을 사용 하거나(번호만 표시) zsh 자체 내장 명령(실행 하여 로드) 을 사용하여 d
장치 번호를 찾아야 합니다 . 그것) .stat
stat -c %d /
stat
zmodload zsh/stat
ls -lh /**/*(L+M99d$(stat -c %d /))
답변2
당신이 시도하는 명령은 내가 읽을 수 있습니다. 그러나 아래와 같이 파일 유틸리티를 사용하여 찾을 수 있습니다.
find / -maxdepth 10 -size +100000 -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
또 다른 방법은 다음 명령을 사용하는 것입니다.
du -BM / | sort -nr
위의 명령은 정렬된 파일 크기별로 정렬된 파일을 제공합니다.
당신이 사용하는 경우코어유틸 > 7.5, 다음 명령을 실행하여 파일을 크기별로 나열할 수 있습니다.
du -ah / | grep -v "/$" | sort -h
sort -h
내 컴퓨터에는 사용할 수 있는 옵션이 없습니다 .
의견에서 언급했듯이 사람이 읽을 수 있는 형식은 파일 크기가 다음과 같아야 한다는 것입니다.지식 기반,MB또는국가 표준. 답변으로 게시한 두 번째 명령을 사용하겠습니다. 내 시스템에서 사용할 때 얻는 결과는 다음과 같습니다.
du -BM /home/ramesh/chk1/ | sort -nr
50M /home/ramesh/chk1/
21M /home/ramesh/chk1/Hierarchical_Clustering_Working
3M /home/ramesh/chk1/checking_files
1M /home/ramesh/chk1/checking/checking2
1M /home/ramesh/chk1/checking/checking1
1M /home/ramesh/chk1/checking/asdf
1M /home/ramesh/chk1/checking
답변3
나는 당신이 추구하는 것이 다음과 같다고 생각합니다.
find / -maxdepth 10 -size +100000 -exec ls -lah {} +
-exec
명령을 실행하고 {}
찾기 결과로 바꿀 수 있습니다. 마지막으로 +
find에게 이것이 명령의 끝이며 필수임을 알리는 것입니다.
답변4
du -bah
나는 over의 깔끔한 출력을 선호합니다 ls -hl
(내 기억력을 향상시키는 데 사용할 수 있으면 좋겠지 du -hab
만 순서는 다를 수 있습니다).
find / -maxdepth 10 -size +100000 -exec du -bah {} + 2> /dev/null
du
일반적으로 정확한 파일 크기보다는 디스크 블록 크기가 표시되므로 의 -b
또는 옵션이 필요합니다 .--bytes
--apparent-size --block-size=1
du
du -b
macOS 시스템에는 이 옵션이 없을 수도 있습니다 .du