ls 및 find 명령은 디렉토리를 제외합니다.

ls 및 find 명령은 디렉토리를 제외합니다.

나는 이것을하고 싶다 :

ls -altrhS 'find / -type d \( ! -name tmp -prune \) -size +10000k 2> /dev/null -print' | egrep -v 'ibd|MYD|MYI'  

그래서 특정 크기(tmp 디렉터리 제외)의 파일을 이 형식으로 나열하고 싶습니다. 내가 읽은 모든 내용에는 완료되어야 한다고 나와 있지만 작동하지 않으며 임시 디렉토리의 내용도 계속 가져옵니다.

답변1

이 시도:

find / -not -path "*/tmp/*" -size +10000k -ls 2> /dev/null | \
sort -n -k7 | egrep -v 'ibd|MYD|MYI'

설명하다:

  • find / -not -path "*/tmp/*" -size +10000k -ls/tmp/: 경로가 10000k보다 큰 경로로 시작하지 않는 모든 항목을 찾아 출력을 find자체 형식으로 인쇄합니다.ls -dils
  • sort -n -k7: 귀하의 질문에서 언급했듯이 ls -altrhS출력을 파일 크기별로 오름차순으로 정렬하고 싶다고 가정합니다. 필드 7 의 출력은 파일 크기 ls -dils입니다 .find
  • egrep -v 'ibd|MYD|MYI'egrep그리고 이러한 문자열을 필터링하는 귀하의 부분

편집하다:

사람이 읽을 수 있는 파일 크기 형식을 원하는 경우 ls다음 명령을 사용하십시오.

find / -type f -not -path "*/tmp/*" -size +10000k -printf "%s %p\n" 2> /dev/null | sort -n -k1 | cut -d' ' -f2- | xargs -L 1 ls -lh

관련 정보