過去2時間ほどで、システム内の最新の変更されたファイルを見つけようとしています。私が使用しているコマンドは次のとおりです。
sudo find / -mmin -120 -printf '%T@ %p\n' | sort -n | cut -f2- -d" " | more
ただし、上記のコマンドは、文字列を含む多くのエントリを出力します/proc
。それで、出力からそれらの行を削除することができるより良い方法はありますか?
また、上記の状況に対処するためのより良い方法がある場合は、提案してください。唯一の基準は、出力にディレクトリだけでなくファイルも含まれている必要があるということです。
編集:-
上記のコマンドを変更して、の名前も含めるようにしnewline
、Arronicalの回答とαғsнιηの回答を追加しました。最終的な結果は次のとおりです。
sudo find / ! -path '*/proc*' -type f -mmin -120 -exec ls -al {} \; | grep -v anystring | less
grep -v
'/ proc'などの文字列を含む行を削除するために使用できます。これをパイプとしてコマンドに追加して、次のようにすることができます。
sudo find / -mmin -120 -printf '%T@ %p\n' | grep -v '^/proc' | sort -n | cut -f2- -d" " | more
ただし、のファイルは/proc/
本質的に一時的なものであるため、次のようなエラーが発生する可能性があります。
find: â?~/proc/22232/fdinfo/5â?T: No such file or directory
次のように、findコマンドのSTDERRを/dev/null
usingにリダイレクトすることで、これらを回避できます2>/dev/null
。
sudo find / -mmin -120 -printf '%T@ %p\n' 2>/dev/null | grep -v '^/proc' | sort -n | cut -f2- -d" " | more
より良い方法
結果をフィルタリングしてエラーメッセージを取り除くのではなく、findコマンドを変更して、次のものが検索されないようにすることができます/proc
。
sudo find / -not -path '/proc/*' -mmin -120 -printf '%T@ %p\n' | sort -n | cut -f2- -d" " | more
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加