ディレクトリが与えられたら、すべてのリーフファイルを時間の逆順でどのようにリストしますか?ls -Rltr
サブディレクトリの内容を時系列順に並べ替えることですが、ファイルを子ディレクトリごとにグループ化するため、親ディレクトリに関係なくすべてのリーフファイルを時系列順にリストする必要があるという要件が壊れます。ありがとうございます。
答え1
そしてzsh
:
printf '%s\n' **/*(D^om/:t)
zsh
これは現在ユニークな機能であるグローバル修飾子です。
D
:ドットファイルを含みます。^
:次の修飾子を反転します。om
:時系列修正(反対^
)/
^
:その種類のファイルを除外(使用)します。目次。:t
:獲得できる修飾語尾ファイル名(デフォルト名)。
(デフォルト名だけでなくフルパスが必要な場合は削除してください:t
。)
bash
以下を提供するすべてのシェルで利用可能zsh
:
zsh -c 'printf "%s\n" **/*(D^om/:t)'
またはGNUシステムでは:
find . ! -type d -printf '%T@\t%f\0' | sort -zn |
tr '\n\0' '\0\n' | cut -f2- | tr '\0' '\n'
(デフォルト名だけでなく、フルパスを必要に応じて or%f
に変更します(ここと同じ))。%P
%p
./%P