最近作成されたファイルについて教えてくれるツールはありますか?
階層的なファイルシステムを使用するまだ一般的な方法では、ファイルを別の場所に保存することが困難であるため、コンテンツは通常のトピックフォルダに分類され、時にはディレクトリなどのコンテンツに直接関連する場所にソートされます。ツール。
私が尋ねることができるツールは次のとおりです。
作成/保管期間
ファイル形式/名前/拡張子
除外/含めるディレクトリのブラック/ホワイトリスト
答え1
これらのタスクをサポートするコマンドラインツールは次のとおりですfind
。
はい
find /path -iname '*.ext' # search for extension (don't forget the quotes)
find /path -mtime n # search for last modified `n*24h` ago
find /path -atime n # search for last accessed `n*24h` ago
find /path -newer ref # newer than ref
find /path -size +100M # larger than 100MB
find /path -perm 664 # example to search for files with a specific permission
find /path -type <t> # search for file `f`, directory `d`, symbolic link `l` ...
ファイル形式の詳細については、以下を実行することをお勧めします。
find /path -type f -exec file '{}' \; | grep 'Vorbis audio'
find
.
答え2
inotify
すぐに知る必要がある場合は、以下を使用してください。
新しく作成されたファイルについてすぐに知る必要がある場合は、実際にinotify
LinuxでAPIを使用してディレクトリまたはディレクトリツリーにファイルが作成されたときにイベントを待つことができます(参考資料を参照man 7 inotify
)。
他のソリューションの一部と組み合わせて、ファイルに関する詳細情報を見つけることができます。
ファイル生成観察例
次に、コマンドがinotifywait -e create -m /path
開始されます。この行の後に待っている間、Watches established.
他の端末に新しいファイルが作成されます。foo
/path
term1$ inotifywait -e create -m /path
Setting up watches.
Watches established.
term2$ touch /path/foo
term1$ inotifywait -e create -m /path
Setting up watches.
Watches established.
./ CREATE foo
^C
(最初の3行は上記のように繰り返されます)
-m
(--monitor
)オプションがない場合は、inotifywait
最初のイベントの後に停止し、これはスクリプトループに役立ちます。