私はUbuntuを初めて使用しますが、Linux/Unixの経験はあまりないので、この問題を解決するまでしばらくお待ちください。
映像を記録し、スクリーンショットを撮り、フォルダーに保存するカメラシステムがあります。問題は、新しいファイルが古いファイルを上書きしないため、ファイルシステムがいっぱいになり、すべての新しいファイルが破棄されることです。
そのため、Ubuntu GUIにスケジュールタスクをインストールし、毎日実行するタスクを作成しました。タスクは次のとおりです。
find /media/dvr/* -type f -mtime 0 -exec rm -rf {} \;
テスト目的で-mtime
を0
に設定していますが、これを機能させることができれば7
に設定されます。
私が抱えている問題は、/dvr
フォルダーにlost + foundフォルダーがあることです。そのフォルダに到達すると、表示する権限がないと表示され、検索は終了しません。 Sudoを使用して所有権とrwxアクセス権を取得および変更しましたが、それでも解決しません。
Findを使用して、やりたいことを達成する方法はありますか? /dvr/
フォルダーを削除するより効率的な方法はありますか?
私が言ったように、これに新しいと良くしようとしている。どんな助けも大歓迎です!
ただやる:
find /media/drv -name lost+found -Prune -o -type f -exec echo '{}' ';'
一般に、stderrを/ dev/nullにリダイレクトすることは非常に悪い考えです。 stderrの重要なポイントは、予期しないエラーを表示することです。特定のエラーが予想される場合は、コマンドを作成してエラーを回避してください。
find
コマンドは、私が知る限り、許可の問題で終了しません。別の理由でファイルが見つからない場合があります。私が提案できるのは、出力に誤解を招くメッセージが表示されないようにstderrを排除し、rm -rf
を置き換えるecho
を使用してコマンドをテストすることです。
find /media/drv/ -type f -mtime 7 -exec echo {} \; 2> /dev/null
これにより、最終バージョンで削除されるファイルがrm -rf
でリストされます。 lost+found
ディレクトリをスキップしたい場合(これは必要ありません)、次を使用します。
find /media/drv/ -type f -mtime 7 -not -wholename "*lost+found*" -exec echo {} \; 2> /dev/null