https://unix.stackexchange.com/a/240424/674ディレクトリ内の最近変更された3つのファイル(直接または間接的)を見つける方法を示します。
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
。