~$で始まるすべての一時ファイルを削除するスクリプトが必要です

~$で始まるすべての一時ファイルを削除するスクリプトが必要です

最近、ファイルサーバー上で一時ファイルをスキャンしたところ、~$名前の先頭に追加すると、約 1,000 件の結果が生成されました。

これらのファイルの「最終更新日」は 2003 年まで遡ります (したがって、現在はすべて不要であり、安全に削除できます)。

「~$」で始まるファイルを識別して削除するスクリプトが必要です。このスクリプトをサーバー上で週に 1 回実行するようにスケジュール設定して、これらの一時ファイルを頻繁に自動的に消去することができます。

答え1

特定のディレクトリの場合、これは ~$ で始まる名前を持つすべてのファイルを再帰的に削除します。

find /path/to/directory -type f -name '~$*' -exec rm '{}' \;

特定のディレクトリのみに制限し、そのサブディレクトリ以下には制限しない場合は、maxdepth を使用します。

find /path/to/directory -maxdepth 1 -type f -name '~$*' -exec rm '{}' \;

-maxdepthファイルを検索するディレクトリの目的のレベルに応じて、整数引数を変更します。

もう 1 つのより簡単な方法は、glob を使用することですが、パターンに一致するディレクトリにアクセスしようとするため、あまり良いアイデアではありません。それでもディレクトリは削除されませんが、エラー メッセージに悩まされることになります。-fオプションを使用するか、エラー出力を送信することもできます/dev/nullが、メソッドとしてはすでにダーティです。

rm '/path/to/directory/~$'*

関連情報