現在のユーザーのデスクトップディレクトリパスはどこに保存されていますか?

現在のユーザーのデスクトップディレクトリパスはどこに保存されていますか?

私はLinuxに初めて触れ、すべての基本を学んでいます。これを行ったとき、オペレーティングシステムが特定のファイルを別の方法で処理するのがどれほど奇妙なのかがわかりました。つまり、そのファイルが現在ログインしているユーザーに関連付けられているデスクトップファイルの場合は、GUIデスクトップ環境に表示されます。オペレーティングシステムは、現在のユーザーデスクトップディレクトリのパス変数をどのように知ることができますか?ハッカーの楽しみのためにGUIデスクトップにランダムなディレクトリを表示するように変更できますか?

答え1

デスクトップディレクトリのデフォルトパスは言語によって異なります。したがって、システムにこのような状況があるかどうかを$HOME/Desktopよりよく推測できます。xdg-user-dir

$ xdg-user-dir DESKTOP
/home/arnie97/桌面

(パッケージ名はxdg - ユーザーディレクトリS、実行可能ファイル名はxdg-user-目次。この点を指摘してくれた@theDrakeに感謝します。 )


別の方法がありますxdg-user-dirsホームページ、残念ながら私のシステムでは動作しません。

以下は、デスクトップディレクトリとダウンロードディレクトリを見つける方法のシェルスクリプトの例です。

test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && source ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}
echo ${XDG_DOWNLOAD_DIR:-$HOME}

アプリケーションコードの場合、さまざまなデスクトップがそれらを統合し、これらのディレクトリを見つけるための良いAPIを持っていることを願っています。

答え2

通常、GNU / Linux(Unixなど)では、ユーザーのデスクトップディレクトリをとしてマークすることができます~/Desktop。この略語は~/ホームディレクトリ内のすべてのエントリに展開されます/path/to/home/username

私はほとんどシェル~(例:bash、ksh、cshなど)はホームディレクトリに展開されますが、すべてではありません(例:rc)。チルダはリテラル文字なので、ファイルを持つことができます~filename。したがって、シェルは特定の条件でチルダを拡張するように設計する必要があります。

答え3

ほとんどのディストリビューションへのパス(すべてではありませんが、ほとんどと言います。Linux(またはGNU / Linux)は、良いか悪いかを変更できない場合は何もないためです)、次のようにコマンドライン/home/<user name>/Desktop からアクセスできますcd /home/<username>/Desktop 。ファイルは次のように簡単です。引用符なしで「ls」コマンドを使用するのと同じです。

答え4

これはデスクトップ環境によって異なります。

ウィンドウマネージャを使用している場合は、次のようなさまざまなツールを使用してデスクトップにコンテンツを表示できます。PCmanFMデスクトップ

ほとんどのツールとデスクトップ環境はxdg-user-dir DESKTOP設定に従います。

関連情報