繰り返しディレクトリを強制的に作成するために、どのアプリケーションを非難すべきですか?


21

私のシステムには、空の~/Desktopディレクトリを何度も作成し続けるアプリケーションがあります。私は自分の家に大文字を立てることはできませんし、この「デスクトップ」のものを立てることもできません。だから、私と同じようにうるさいので、表示されるたびにディレクトリを削除します。どのアプリケーションがその原因であるかを知りたいのですが(おそらくあまり使用しないアプリケーションもあります¹)。

犯人を追跡するための良いアイデアはありますか?


1.明らかにそれを取り除きたい、またはそれなしでは生きられないならパッチを当てたい。

回答:


11

このディレクトリは、Freedesktop userdirs標準に従うアプリケーションによって作成される場合があります。これには、すべてのGnomeまたはKDEアプリケーションが含まれる可能性があります。

ファイルを作成するアプリケーションを知りたい場合は、LoggedFSファイルシステムまたはLinux 監査サブシステムを使用できます。参照してくださいそれはプログラムまたはスクリプトが指定されたファイルを作成したかを調べることはできますか?詳細については。


だから私の質問はまったく同じです...ありがとう!
ステファンギメネス

そして、あなたの答えは、実際に質問に答える唯一の人のようです。
ステファンギメネス

@StéphaneGimenez技術的には質問は重複していますが、その特定の場合、ほとんどの人にとって正しい答えは、Freedesktop準拠のアプリケーションによって作成され、それと戦うことは役に立たないということです(試した後、作成しました~/.config/user-dirs.dirs)。たとえば、私のコメントでは、user-dirs.dirsUbuntuでは、ログイン時にxdg-user-dirs-updatefromから呼び出されてディレクトリが作成されることがわかりまし/etc/Xsession.d/*た。
ジル 'SO-悪であるのをやめる'

8

これは、無料のデスクトップ標準の 1つからのディレクトリのように見えます。それに準拠するアプリケーションが作成されている可能性があります。

これらの「標準」ディレクトリはで指定できます$HOME/.config/user-dirs.dirs。大文字で始まらず、どこかに隠れるように名前を変更できますが、完全に取り除くことは困難です。

xdg-user-dirs-updateこれらのディレクトリを作成することを目的としたプログラム()が1つあります。xdg-users-dirsを参照してください。$HOME/.config/user-dirs.confを含むことで非アクティブ化できる場合

enabled=False

回避策はありますが、どのアプリケーションがこのディレクトリを作成しているのか知りたいです(ディレクトリが再度作成されたときにキャッチしたいです)。
ステファンギメネス

おかげで、私はそれを試してみます。しかし、アプリケーションがそれ自体でディレクトリを作成していないことを望みます。
ステファンギメネス

このenabled情報はどこで見つけましたか?読むとxdg-users-dirs、これはスクリプトにまったく影響を与えていないようです。
ステファンギメネス

ここでそして読んで/etc/xdg/user-dirs.conf
-AProgrammer

わかりました、confファイルを読み取るプログラムはxdg-users-dirs-updateです。
ステファンギメネス

0

ボックス上の完全なグラフィカル環境(XおよびGnomeやKDEなどのデスクトップ環境)であれば、間違いなくデスクトップ環境のプロセスです。おそらく、ログインするたびにデスクトップディレクトリが作成されます。ディレクトリの作成を担当するプロセスは、実行しているデスクトップ環境に完全に依存しています。


それは孤立したプロセスだからです。「グラフィカル環境」は使用せず、ウィンドウマネージャーが最小限のX11サーバーのみを使用しています。
ステファンギメネス

0

DebianおよびUbuntuでは、にエントリがあることがわかりuser-dirs-update-gtk.desktopました/etc/xdg/autostart/

そのエントリを削除すると、ユーザーディレクトリを再度作成できなくなります。

freedesktop標準から来たもので、これは他のディストリビューションでも機能する可能性が高いです。


何もありません(ただし、ディレクトリは存在します)。特定のディレクトリを作成しようとするプロセスを見つけるための一般的な方法を探していました。
ステファンギメネス

@StéphaneGimenez:最初から、問題を追跡する方法が問題自体よりもあなたにとって重要であることは明確ではありませんでした。
エンゾチブ

0

アプリケーションがまだ実行されている場合は、lsofを使用してそのディレクトリで開いているファイルを見つけることができる場合があります。ディレクトリはファイル名の一部にすぎないため、lsofのパラメータとして使用できるとは思わないので、その一部をgrepする必要があります。

lsof | grep $HOME/Desktop

アプリケーションがファイルオープンの下を持っていることはほとんどありませんので、これは、仕事にはほとんどありません~/Desktopあなたは実行時にlsof、それがうまくとにかく内のディレクトリおよび他に完了何を作成している場合があります。
ジル 'SO-悪であるのをやめる'

したがって、「あなたができる」。これを防ぐことに関する他の回答、およびおそらく責任があるのはデスクトップライブラリであることは理にかなっています。ただし、デバイス上でこのようなファイルが作成されている場合、この方法で開始し、失敗すると、ldプリロードで開始し、そのディレクトリを作成しようとしたときにアサートします-この質問には明らかに極端すぎる、でも楽しい。
ダニーステープル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.