ディレクトリまたはサブディレクトリのいずれかにあるファイル名を忘れました。ファイル拡張子(.nb)を覚えて、いつ作成されたかを大まかに知っています。現在のディレクトリとサブディレクトリにあるこの拡張子を持つすべてのファイルとその作成日をどのように一覧表示できますか?私はMac OS Xを使用しています。
答え1
これを行う簡単な方法は次のとおりです。扱いにくい、macOSにデフォルトでインストールされます。それグローバル予選タイムスタンプやその他のメタデータに基づいてファイルを選択して並べ替えることができます。 zsh は生成時間をサポートしませんが、修正時間と inode 変更時間はサポートします。これらのうちの1つは作成時間と一致することがあります。
これは、現在のディレクトリとそのサブディレクトリ()にある拡張子を持つ100個の[1,100]
最新の(om
)一般()ファイルを一覧表示します.
。.nb
**/
zsh -c 'ls -ltr **/*.nb(.om[1,100])'
これには、7〜14日前に変更されたファイルが一覧表示されます。
zsh -c 'ls -ltr **/*.nb(.m+6m-14)'
答え2
これはあなたが望むものを達成する必要があります。
find . -type f -name '*.nb'|xargs stat -f '%c %N'|sort
説明する
find . -type f -name '*.nb'
.nb 拡張子を持つすべてのファイルを探します。
xargs stat -f '%c %N'
Unixタイムスタンプが前にあるファイルを印刷します。
sort
分類してください。
答え3
Bashの場合(Macではない):
find . -type f -iname '*.nb'| xargs -d '\n' stat -c '%z %N'|sort
現在のディレクトリと次のディレクトリで、パターンに一致する "file"タイプのすべてのエントリを見つけます。
(-inameは大文字と小文字を無視します)
xargsによるパイプ
(-d '\ n'区切り文字を改行に変更してファイル名にスペースを入れます)
だから統計
(-c は出力形式 %z = 最後の状態変更 %N 引用されたファイル名を意味します)
そして出力をソート
答え4
find -name '*.nb' -exec ls -rtl {} +
このパターンに一致するすべてのファイルの詳細が表示され、最も古いものから最新のものに並べ替えられます(r
コマンドからオプションを削除すると、最新のものから古いものの順に並べ替えることができますls
)。
最後は、+
一致するすべての項目に対してコマンドを実行するのではなく、検索の最後にコマンドを実行することを意味します。
ノート:これは合理的な数の一致に対してのみ機能します。コマンドラインが長すぎると、ls
複数に分割され、複数のls
サブセットがソートされ、リスト全体が正しくソートされません(これを指摘した@Gillesと@rudimeierに感謝します)。