ディレクトリ(およびサブディレクトリ)にあるすべてのファイル(およびサブディレクトリ)、アクセス時間による順序
質問
アクセス時刻によって順序付けられた特定のディレクトリ(およびサブディレクトリ)内のすべてのファイル(およびサブディレクトリ)をリストするためのLinuxコマンドを構築します。
LSはアクセス時間で注文できますが、フルパスを与えません。検索はフルパスを与えますが、アクセス時間を超えて唯一のコントロールは、-atime n(少なくとも24 * n時間前にアクセスされる)で範囲を指定することです。
アクセス時間で注文する方法はあり、一度にフルパスを入手しますか?私はただスクリプトを書くことができました、しかしそれは標準のLinuxプログラムでこれを行う方法があるべきであるようです。
解決
find . -type f -exec ls -l {} \; 2> /dev/null | sort -t' ' -k +6,6 -k +7,7
.
これはすべてのファイルを見つけ、日付で並べ替えて時間を並べ替えます。その後、awk
またはcut
を使用して、ls -l
Output から日付とファイル名を抽出できます。
他のヒント
試すことができます:
ls -l $(find /foo/bar -type f )
.
- あなたの目標を達成するために、
ls
コマンドに他のオプション(並べ替え)を追加することができます。 - 検索基準を
find
CMD に追加することもできます。
find . -type f | xargs ls -ldt
は、引数制限のようなコマンドをヒットしていないファイルが多くない限り、トリックをする必要があります。
pwd | xargs -I % find % -type f
. find . -type f -exec ls -l --full-time {} \; 2> /dev/null | sort -t' ' -k +6,6 -k +7,7
.
アレックスの答えは1年以上古くてソートがめちゃくちゃになったので私のために働かなかった。上記は、日付/時刻値を享受する - full-timeパラメータを追加し、それらが何歳の任意であるかにかかわらずソート可能になります。
所属していません StackOverflow