いくつかの例外を除いて、Linuxでファイルを探す

いくつかの例外を除いて、Linuxでファイルを探す

過去24時間に変更されたすべてのファイルを検索するコマンドを作成しようとしていますが、各public_htmlディレクトリを通過するループがあるPHPだけで、毎日確認できるように出力をHTMLファイルに保存します。

 for i in `ls /var/cpanel/users`; 
 do find /home/$i/public_html -type f -ctime -1 -exec ls -ls {} \; > 
 /home/demo4/public_html/output.html;
 done;

しかし、うまくいかず、出力が正しくありません。これは1つのアカウントの出力なので、すべてのアカウントで機能する必要があります。

0 -r-xr-xr-x 1 ziaengg ziaengg 0 Jan 12 15:16 /home/ziaengg/public_html/modules/mod_rsflashmatic/xml/rsflashmatic_93.xml 23320 -rw-r--r-- 1 ziaengg ziaengg 23851008 Jan 12 15:25 /home/ziaengg/public_html/error_log

また、結果を特定のIDで電子メールで送信する方法も知りたいです。

キーワードを含むファイルを除外するには、どのパラメータを追加する必要がありますかcache?私はこれに本当に新しいものです。

ベストアンサー1

努力する:

cd /var/cpanel/users &&
for i in *
do
    find "/home/$i/public_html" -type f ! -iname '*cache*' -ctime -1 -ls 
done > /home/demo4/public_html/output.html

メモ:

  • >>代わりに使用してください>。それ以外の場合、各反復は最後の出力を上書きします。または、ループ全体の出力をリダイレクトする場合>
  • 一部の実装には非常によく似たオプションfindがあるため、可能であればそれを使用してください。-ls-exec ls -ld {} \;
  • 演算子を使用!して検索を無効にします。! -iname '*cache*'
  • find非標準-iname述語をサポートしていない場合は、-name '*[cC][aA][cC][hH][eE]*'代わりにその述語を使用してください。
  • これはユーザー名なので使用できますfor i in $(ls ..)が、より安全使用for i in *

おすすめ記事