Linux shell中如何获取当前目录
作者:sayyy
这篇文章主要介绍了Linux shell中如何获取当前目录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Linux shell中获取当前目录
当前目录
每当你在终端进行操作时,你都会有一个当前工作目录。
使用pwd来判定当前目录在文件系统内的确切位置。
[root@localhost ~]# pwd /root
在shell中也可以使用pwd来获取当前目录,并赋值给变量。
#!/bin/bash CRTDIR=$(pwd)
工作目录
获取当前执行的脚本文件的父目录。
workdir=$(cd $(dirname $0); pwd)
复杂点的工作目录获取
PRG="$0" while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`/"$link" fi done PRGDIR=$(cd $(dirname $PRG); pwd)
shell脚本常用语法——获得当前目录
1.获得shell脚本所在的绝对路径
CURRENT_DIR=$(cd $(dirname $0); pwd)
或者
CURRENT_DIR=$(cd `dirname $0`; pwd)
执行步骤解析:
dirname $0
: 取得当前执行的脚本文件所在的目录;cd
: 进入当前工作目录;pwd
: 显示当前工作目录;
将当前工作目录输出给变量CURRENT_DIR。
2.获得shell脚本所在目录的父级目录的绝对路径
由于能1 获得shell脚本所在的绝对路径,那么同理,就可以获得脚本所在目录的父级目录的绝对路径。
PARENT_DIR=$(cd $(dirname $0);cd ..; pwd)
只是在pwd命令之前添加了cd ..到父级目录。
注意:
$()
与``
作用一样,用于shell命令的执行。dirname
: 显示最后一个结点前的路径;相对的,basename: 显示最后一个结点的名称。$0
: 脚本的路径名称,包含脚本本身的名称。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。