Linux shell中如何获取当前目录

 更新时间:2023年07月25日 09:59:48   作者: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: 脚本的路径名称,包含脚本本身的名称。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux 中C语言getcwd()函数的用法

    Linux 中C语言getcwd()函数的用法

    这篇文章主要介绍了Linux 中C语言getcwd()函数的用法的相关资料,需要的朋友可以参考下
    2017-04-04
  • makefile中的shell变量语法及用法总结

    makefile中的shell变量语法及用法总结

    在 Makefile 中,变量的使用规则确实容易让人混淆,下面我来总结一下常见的几种用法及其含义,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • bash的特性及bash中的引号使用技巧

    bash的特性及bash中的引号使用技巧

    本文系统讲解了Bash中三种引号(单引号、双引号、命令替换)的功能差异与使用场景,重点强调引号在变量替换、命令执行、安全防护(如防止注入攻击)中的关键作用,并通过示例对比帮助读者掌握正确用法,感兴趣的朋友跟随小编一起看看吧
    2025-07-07
  • linux 中sed命令实现删除文件的任意列(操作代码)

    linux 中sed命令实现删除文件的任意列(操作代码)

    这篇文章主要介绍了linux中sed命令实现删除文件的任意列,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • shell进度条追踪指令执行时间的场景分析

    shell进度条追踪指令执行时间的场景分析

    这篇文章主要介绍了shell进度条如何追踪指令执行时间,本文中的进度条可以应用于大部分场景。不用修改进度条函数的任何代码,就可以直接使用,特别适合那些可预估指令执行时间的场景,需要的朋友可以参考下
    2022-06-06
  • 深入了解Linux的文件权限

    深入了解Linux的文件权限

    Shell是操作系统外壳程序的统称,Windos中的图形化界面、Linux中的命令行外壳都是外壳程序。CentOS中的外壳程序被称为bash。本文主要是和大家聊聊Linux中的文件权限,感兴趣的可以了解一下
    2022-10-10
  • Linux 命令uniq经典操作示例

    Linux 命令uniq经典操作示例

    uniq 命令是对连续重复行去重/统计的工具,常与sort配合使用(先排序让重复行连续,再去重),核心用于文本去重、统计重复行出现次数,是处理日志、数据清单的高频组合工具,这篇文章主要介绍了Linux 命令uniq经典操作示例,需要的朋友可以参考下
    2026-02-02
  • linux Nginx 日志脚本

    linux Nginx 日志脚本

    这篇文章主要介绍了nginx日志切割脚本、nginx日志分析脚本等,需要的朋友可以参考下
    2013-11-11
  • linux sed命令详解(推荐)

    linux sed命令详解(推荐)

    sed命令是一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作。接下来通过本文给大家详细介绍linux sed命令相关知识,感兴趣的朋友一起学习吧
    2017-04-04
  • 利用linux的timerfd_create实现计时器示例分享

    利用linux的timerfd_create实现计时器示例分享

    这篇文章主要介绍了利用linux的timerfd_create实现计时器示例,需要的朋友可以参考下
    2014-02-02

最新评论