Unix:从路径查找目录名称
时间:2020-01-09 10:45:51 来源:igfitidea点击:
Unix如何从完整路径提取目录名称(例如/nas01/data/backups/file.tar.gz)?
如何在Linux或者类Unix系统上从其路径获取目录名?
您可以使用dirname命令提取目录名称。
方法1:使用dirname命令获取目录名称
语法为:
dirname /path/to/file
或者
VAR=$(dirname /path/to/my/myname.txt)
或者
FOO="/path/to/my/folder/filename.avi" OUT="$(dirname ${FOO})"
例子
以下示例显示输出/nas01/data/backups:
dirname /nas01/data/backups/file.tar.gz
输出示例:
/nas01/data/backups
以下行将shell程序变量SRC设置为/nas01/data/backups:
SRC="$(dirname /nas01/data/backups/file.tar.gz)" echo "Dirpath - $SRC"
输出示例:
Dirpath - /nas01/data/backups
方法2:使用bash/ksh shell从完整路径中提取目录名称
$字符用于参数扩展和命令替换。
您可以使用它来按需操作和/或者扩展变量,而无需使用sed或者awk之类的外部命令。
要从最短的后部(尾部)花样中去除:
${VAR%/*} VAL="${PATHNAME%/*}"
在此示例中,将FILE设置为/nas01/data/backups/demo.avi:
FILE="/nas01/data/backups/demo.avi" echo "$FILE = $FILE"
要提取目录名称,请执行:
echo "${FILE%/*}" # OR store to DIR # DIR="${FILE%/*}" echo "Dirpath - $DIR"
输出示例:
Dirpath - /nas01/data/backups