だから私はlsの構文解析が悪いことを知っています!。
今日、私はこのナゲットを見つけました:
FILENAME=`ls -t $READ_FOLDER | head -1`
したがって、元々これは最新のファイル名を取得するように設計されていたと思いますが、実際には、おそらく5番目を取得するためにそれを適応させたいと思います。 チェックするプロセスとしての最新のファイルは少し遅いため、まだ処理されているかどうかはわかりません。
私はbashで作業していますが、shの一般的なソリューションにも反対していません。
承認された回答:
GNU find
を使用できます 変更された時刻がエポック時間で表されているファイルを一覧表示するには、sort
を使用します リストを並べ替えるには、最後にhead
およびtail
目的の番号のファイル名を取得するには:
find . -maxdepth 1 -type f -printf '%[email protected] %pn' | sort -k1,1nr | head -5 | tail -1