✍️ 田冬冬 • 📅 2024-09-09

# 输入文件的搜索目录

## 搜索目录顺序

GMT 命令行经常需要读入文件。如果指定了文件的完整路径，GMT 会直接读入。 否则，GMT 会依次到以下目录中去寻找文件，直到找到文件为止：

1. 当前目录：`./`

2. GMT 用户目录：环境变量 $GMT_USERDIR 所定义的目录

3. GMT 数据目录：配置参数 DIR_DATA 或环境变量 $GMT_DATADIR 所定义的目录

4. GMT 缓存目录：配置参数 DIR_CACHE 或环境变量 $GMT_CACHEDIR 所定义的目录

这些配置参数或环境变量的具体用途如下：

- 环境变量 $GMT_USERDIR： 指定用户自定义配置文件的存放目录。例如，用户自定义的 `gmt.conf` 文件、 自定义符号、CPT 文件、网格文件后缀文件等。 若该环境变量未定义，则用户目录默认为 `~/.gmt` 目录（Linux 和 macOS ） 或 `C:\Users\用户名\.gmt` 目录（Windows）。

- 配置参数 DIR_DATA 或环境变量 $GMT_DATADIR： 指定一个或多个存放常用数据文件的数据目录。 若该配置参数和环境变量均未定义，则数据目录默认为空；多个目录之间用逗号分隔； 以斜杠 `/` 结尾的目录都会被递归搜索（Windows 不支持此功能）。 配置参数的值优先于且会覆盖环境变量的值，也就是说若同时设置了 DIR_DATA 和 $GMT_DATADIR，则 GMT 只会在 DIR_DATA 指定的目录中寻找。

- 配置参数 DIR_CACHE 或环境变量 $GMT_CACHEDIR： 指定存放从 GMT 服务器上下载的临时数据（以 @ 开头，如 `@hotspots.txt`）的缓存目录。 若该配置参数和环境变量均未定义，则默认缓存目录为 `~/.gmt/cache`。 可以使用 `gmt clear cache` 命令清空缓存目录。 配置参数的值优先于且会覆盖环境变量的值，也就是说若同时设置了 DIR_CACHE 和 $GMT_CACHEDIR，则 GMT 只会使用 DIR_CACHE 指定的目录。

## 其他目录

还有一些目录相关的 GMT 配置参数或环境变量：

- 配置参数 DIR_DCW： 指定 DCW 数据 所在目录。该数据的默认目录为 $GMT_SHAREDIR/dcw 目录。

- 配置参数 DIR_GSHHG： 指定 GSHHG 数据 所在目录。该数据的默认目录为 $GMT_SHAREDIR/coast 目录。

- 环境变量 $GMT_SHAREDIR： 指定 GMT 的 `share` 目录。若未设置，GMT 自动猜测其所在位置 （如 GMT 安装目录下的 `share` 目录）。此环境变量通常不需设置， 且推荐仅在特殊需求时设置。