解決策:

解決策:

次の場所にあるすべてのごみ箱ファイルを空にしようとしています。/nfshome/*/.local/share/Trash/files

findしかし、これを行う正しいコマンドが見つからないようです。

"trash"ディレクトリにファイルとディレクトリを見つけることができます。

$ sudo find /nfshome/*/.local/share/Trash/
/nfshome/9916091/.local/share/Trash/
/nfshome/9916091/.local/share/Trash/files
/nfshome/9916091/.local/share/Trash/info
/nfshome/9918452/.local/share/Trash/
/nfshome/9918452/.local/share/Trash/expunged
/nfshome/9918452/.local/share/Trash/files
/nfshome/9918452/.local/share/Trash/files/mods.2
... plus lots more

しかし、ディレクトリに深く入ると、files期待した結果は得られません。

$ sudo find /nfshome/*/.local/share/Trash/files/
/nfshome/admin/.local/share/Trash/files/

結果は1つだけです。結果は現在ログインしているユーザーです。残りのジャンクファイルが見つからないのはなぜですか?たとえば、最初の検索からの2つのことは何ですか?

/nfshome/9918452/.local/share/Trash/files
/nfshome/9918452/.local/share/Trash/files/mods.2

答え1

*始める前にシェルが拡張されていますfind。シェルを実行する必要はありませんsudo。多くの項目を一致させるには、/nfshome/*/.local/share/Trash/多くのディレクトリにアクセスする必要がありますshare。確かにそうです。最初のケースでは動作します。

ただし、多くの項目を一致させるには、/nfshome/*/.local/share/Trash/files/シェルが多くのTrashディレクトリにアクセスする必要があります。前提:シェルは1つのディレクトリにのみアクセスできます。他のディレクトリに存在するかどうかをTrash知る権限がありません。files/Trash

最初のケースでは、find多くのディレクトリを取得し、Trashすべての権限を持っていますsudo。だからそれはそれらすべてを見つけることができますfiles/。 2番目のケースでは、1つのディレクトリfindだけがパラメータと呼ばれますfiles/

読み取り権限、実行権限がないか、両方がないかをテストできます。これらの詳細は私の主なポイントを変えません。シェルは特定のディレクトリを「検出」することはできませんが、sudo find …すべてのディレクトリを見つけることは許可されます。

答え2

@KamilMaciorowskiが言ったように

解決策:

ルートとして実行しますbash

sudo bash -c 'find /nfshome/*/.local/share/Trash/'

〜で行うfind

デフォルトのディレクトリを見つけて使用するように指示します-path

.localたとえば(すべてのサブディレクトリで見つけることができるので、正確ではありません)

sudo find /home -path "*/.local/share/Trash/*"

より良いもの。正規表現に変換します(上記と同じ)。

sudo find /home -regex ".*/[.]local/share/Trash/.*"

その後、ホームディレクトリに固定します。

sudo find /home -regex "/home/[^/]+/[.]local/share/Trash/.*"

関連情報