linux六个标准目录,Linux基本目录规范——XDG

XDG Base Directory Specification该规范定义了一套指向应用程序的环境变量,这些变量指明的就是这些程序应该存储的基准目录。而变量的具体值取决于用户,若用户未指定,将由程序本身指向一个默认目录,该默认目录也应该遵从标准,而不是用户主目录。

环境变量清单:用户层面变量(User-Level Variables)

$XDG_DATA_HOME

$XDG_DATA_HOME 定义了应存储用户特定的数据文件的基准目录。默认值是 $HOME/.local/share。

使用场景:用户下载的插件;

程序产生的数据库;

用户输入历史、书签、邮件等。

$XDG_CONFIG_HOME

$XDG_CONFIG_HOME 定义了应存储用户特定的配置文件的基准目录。默认值是 $HOME/.config。

使用场景:用户配置。一般来说,这个地方可以在程序初始化的时候存储一个默认的配置文件供加载和修改。

$XDG_CACHE_HOME

$XDG_CACHE_HOME 定义了应存储用户特定的非重要性数据文件的基准目录。默认值是 $HOME/.cache。

使用场景:缓存的缩略图、歌曲文件、视频文件等。程序应该做到哪怕这个目录被用户删了也能正常运行。

$XDG_RUNTIME_DIR

$XDG_RUNTIME_DIR 定义了应存储用户特定的非重要性运行时文件和一些其他文件对象。

使用场景:套接字 (socket)、命名管道 (named pipes) 等。该目录必须由用户拥有,并且该用户必须是唯一具有读写访问权限的。 目录的 Unix 访问模式必须是 0700。

环境变量清单:系统层面变量(System-Level Variables)

$XDG_CONFIG_DIRS

$XDG_CONFIG_DIRS 定义了一套按照偏好顺序的基准目录集,用来搜索除了 $XDG_CONFIG_HOME 目录之外的配置文件。该目录中的文件夹应该用冒号(:)隔开。默认值是 /etc/xdg。

使用场景:可以被用户特定的配置文件所覆盖的系统层面的配置文件。一般来说,应用程序安装的时候可以加载配置文件到这个目录。

$XDG_DATA_DIRS

$XDG_DATA_DIRS 定义了一套按照偏好顺序的基准目录集,用来搜索除了 $XDG_DATA_HOME 目录之外的数据文件。该目录中的文件夹应该用冒号(:)隔开。默认值是 /usr/local/share/:/usr/share/。

使用场景:可以被所有用户使用的插件或者主题。一般来说,应用程序安装的时候可以加载插件、主题等文件到这个目录。

参考

### 在 Linux 中使用命令行打开指定目录下的文件 在 Linux 系统中,有多种方法可以利用命令行工具来打开特定目录中的文件。以下是几种常见的实现方式: #### 方法一:使用 `xdg-open` 命令 `xdg-open` 是一个跨桌面环境的实用程序,能够自动检测用户的首选应用程序并以此打开目标文件或 URL。无论是在 GNOME、KDE 还是 Xfce 下,它都能正常工作。 例如,要打开当前目录下的名为 `example.pdf` 的 PDF 文件,可执行如下命令: ```bash xdg-open ./example.pdf ``` 该命令会调用默认的 PDF 查看器来显示文档[^3]。 #### 方法二:针对不同类型的文件手动选择应用 除了通用的 `xdg-open` 外,也可以根据具体需求选用不同的专用编辑器或查看器。以下是一些常见场景及其对应的解决方案: - **文本文件** 对于纯文本文件,可以选择诸如 `gedit`, `nano`, 或者更高级别的 `vim` 编辑器来进行操作。例如, ```bash gedit ./notes.txt ``` - **图片文件 (JPEG/PNG)** 若需浏览图像,则可能需要用到图形界面的应用如 `eog`(Eye of Gnome),其启动指令形式为: ```bash eog ./image.jpg ``` - **音频/视频媒体** 音频 MP3 和视频 AVI 可分别由播放软件处理,比如 VLC player (`vlc`) 能胜任这项任务: ```bash vlc ./music.mp3 ``` 以上每种情况均假设已安装相应支持包;如果没有预装某些程序,可通过包管理器(apt-get/yum)轻松获取所需依赖项。 #### 方法三:结合 Nautilus 实现可视化交互 如果偏好更加直观的操作体验而非完全依赖终端输入的话,“Nautilus”作为 Ubuntu 默认配备的文件管理器同样提供了便利途径——只需定位至目的位置后再右键选取项目即可触发关联动作。当然也允许直接从 shell 输入类似这样的语句进入某子文件夹视图: ```bash nautilus ~/workspace/ ``` 这特别适用于那些希望迅速切换到 GUI 模式的场合[^1]。 另外值得注意的一点在于上述提到的各种手段都假定操作系统处于带窗口系统的环境下运行(即非服务器版本)。如果是纯粹基于字符接口工作的远程主机连接情形下,则另当别论需要考虑其他替代方案了。 最后附上一段简单的 bash 脚本来示范怎样动态构建指向 Windows 共享盘符风格路径字符串的过程以便进一步扩展功能用途[^2]: ```bash #!/bin/bash String_To_Replace="home" curr_path=$(pwd) # 将 Unix-style path 替换为 Win-style backslashes tihuan=$(echo "$curr_path" | sed 's#/\\\\#g') # 获取 IP 地址用于映射网络驱动器部分替换逻辑 t_ip=$(ifconfig eth0 | grep "inet addr" | awk -F":" '{print $2}' | awk '{print $1}') result=$(echo "$tihuan" | sed "s/$String_To_Replace/$t_ip/g") echo "\\\\${result}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值