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
브랜드는 find
null 바이트를 이름 사이의 구분 기호로 사용하며, 이는 이후 구분 기호로 사용됩니다 xargs -0
.