디렉토리에서 가장 큰 세 개의 파일을 찾는 방법은 무엇입니까? [복사]

디렉토리에서 가장 큰 세 개의 파일을 찾는 방법은 무엇입니까? [복사]

https://unix.stackexchange.com/a/240424/674디렉터리에서 가장 최근에 변경된 세 개의 파일(직접 또는 간접적으로)을 찾는 방법을 보여줍니다.

find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'

stat -c '%Y %n'. stat -c '%B %n'​하지만 제대로 작동하지 않는 것 같습니다. 왜냐하면:

 %b - Number of blocks allocated (see ‘%B’)
 %B - The size in bytes of each block reported by ‘%b’

내 생각엔 %b파일 크기를 보고하지 않는 것 같지만 확실하지 않습니다.

어떻게 해야 하나요?

답변1

%b는 파일 크기를 보고하지만 블록 단위로 보고합니다. 이는 귀하의 목적에 충분할 수도 있고 그렇지 않을 수도 있습니다. ls -l필요한 경우 언제든지 다음을 사용하여 바이트를 가져올 수 있습니다.

find . -type f | xargs ls -l | sort -n -k5 | tail -n 3

파일 이름에 공백이 포함된 경우 표준 솔루션은 다음과 같습니다.

find . -type f -print0 | xargs -0 ls -l | ...

이러한 -print0브랜드는 findnull 바이트를 이름 사이의 구분 기호로 사용하며, 이는 이후 구분 기호로 사용됩니다 xargs -0.

관련 정보