Linux脚本中获取当前及上级目录的几种方式

内容纲要

文章主要用于给出Linux系统下,MakeFile\cmake\shell脚本获取目录的方式

一、Makefile中获取目录

1.1 获取当前目录

注意“=”两边的空格。

CURRENT_DIR = $(shell pwd)

1.2 获取上级目录

在Makefile文件内,可以以当前目录为起点,获取上级目录。注意“=”两边的空格。

TMP_DIR = $(shell pwd)
PARENT_DIR = $(abspath $TMP_DIR../)

二、cmake中获取目录

以下是cmake预置的变量

变量名称 解释
PROJECT_SOURCE_DIR 工程顶层目录
CMAKE_CURRENT_SOURCE_DIR 指的是当前处理的 CMakeLists.txt 所在的路径
CMAKE_CURRENT_LIST_FILE 调用这个变量的 CMakeLists.txt 的完整路径
CMAKE_MAJOR_VERSION CMAKE 主版本号,比如 2.4.6 中的 2
CMAKE_MINOR_VERSION CMAKE 次版本号,比如 2.4.6 中的 4
CMAKE_PATCH_VERSION CMAKE 补丁等级,比如 2.4.6 中的 6
CMAKE_SYSTEM 系统名称,比如 Linux-2.6.22
CMAKE_SYSTEM_NAME 不包含版本的系统名,比如 Linux
CMAKE_SYSTEM_VERSION 系统版本,比如 2.6.22
CMAKE_SYSTEM_PROCESSOR 处理器名称,比如 i686.
UNIX 在所有的类 UNIX 平台为 TRUE,包括 OS X 和 cygwin
WIN32 在所有的 win32 平台为 TRUE,包括 cygwin

2.1 获取当前目录

set(CURRENT_DIR ${PROJECT_SOURCE_DIR})

2.2 获取上级目录

get_filename_component(PARENT_DIR ${PROJECT_SOURCE_DIR} DIRECTORY)

三、shell中获取目录

3.1 获取当前目录

current_dir=$PWD

4.2 获取上级目录

parent_dir=$(readlink -f ../)

留下评论