sudoを使用してディレクトリの内容を削除する方法

sudoを使用してディレクトリの内容を削除する方法

自分のアカウントがアクセスできないディレクトリ(アプリケーションで使用され、アプリケーションを実行しているアカウントが所有するキャッシュディレクトリ)を空にする必要があります。私のアカウントにはフルsudo権限がありますが(私の考えでは)そうではありません。そのディレクトリの内容を削除する方法がわかりません。私のアカウントはcdディレクトリに入ることができず、親ディレクトリにのみ入ることができます。

sudo rm directory/*

答える

cannot remove `directory/*': no such file or directory

簡単な答えが必要な質問のようですが、見つかりません。

編集する:問題のディレクトリは間違いなく空ではありません。

sudo ls directory/

1000を超えるファイル名が返されました。

答え1

シェルが*ファイルのリストに展開しようとしているため、問題が発生しますが、ディレクトリを読み取る権限がないため、拡張できません。

私は2つのことを考えることができます。

sudo bash -c "rm directory/*"

この場合、*はユーザーが拡張するのではなく、ディレクトリを読み取ることができるルートによって拡張されます。

または

sudo find directory -type f -exec rm {} \;

上記のコマンドは、ディレクトリ以外のファイルのみを削除します(それ以外の場合はdirectory内容とともに削除されます)、エラーが発生する可能性が低くなります。

編集:最初のオプションでは、誤ってディレクトリ/ *の代わりにディレクトリ。*を書きました。

答え2

どのタスクを実行するときにsudo rm明示的なパスを使用しない場合は、実行しているタスクについて慎重に考えてください。

sudo rm /explicit/path/to/directory/*動作する必要があります。 ; にファイルがない場合は、directoryエラーが発生します。使用できますrm -fいいえ rm -frそうでなければ完全に何をしているのか決めてください)。

関連情報