首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux sh 获取当前目录

在Linux系统中,sh 是一个常用的shell解释器,用于执行shell脚本。要获取当前目录,可以使用 pwd 命令。pwd 是 Print Working Directory 的缩写,它会打印出当前工作目录的绝对路径。

基础概念

  • Shell: 是一个命令行解释器,它允许用户与操作系统进行交互。
  • 当前目录: 指的是用户当前所在的文件夹位置。
  • 绝对路径: 从根目录 / 开始,到指定文件或目录的完整路径。

相关优势

  • 简洁性: pwd 命令非常简单,易于记忆和使用。
  • 通用性: 几乎所有的Linux发行版都支持这个命令。
  • 即时性: 可以快速查看当前所在目录,无需编写复杂的脚本。

类型与应用场景

  • 交互式使用: 在终端中直接输入 pwd 查看当前目录。
  • 脚本编写: 在shell脚本中使用 pwd 来获取脚本执行时的当前目录。

示例代码

以下是一个简单的shell脚本示例,它使用 pwd 命令并将结果保存到一个变量中:

代码语言:txt
复制
#!/bin/sh

# 获取当前目录并保存到变量 current_dir 中
current_dir=$(pwd)

# 打印当前目录
echo "当前目录是: $current_dir"

遇到的问题及解决方法

如果在执行 pwd 命令时遇到问题,比如输出不正确或者没有输出,可能是以下原因:

  1. 权限问题: 当前用户可能没有权限访问某些目录。解决方法是使用具有足够权限的用户登录或更改文件权限。
  2. 符号链接: 如果当前目录是一个符号链接,pwd 默认会显示符号链接指向的实际目录。可以使用 -P 参数来显示物理路径:
  3. 符号链接: 如果当前目录是一个符号链接,pwd 默认会显示符号链接指向的实际目录。可以使用 -P 参数来显示物理路径:
  4. 环境变量: 检查是否有设置错误的环境变量影响了当前目录的判断。
  5. 系统错误: 如果以上都不是问题,可能是系统层面的错误。这时可以尝试重启系统或查看系统日志来诊断问题。

通过以上方法,通常可以解决在使用 pwd 命令时遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Linux系列】获取当前目录

而环境变量是系统级别的变量,它们存储有关系统环境的信息,比如当前工作目录。 $PWD是一个特殊的环境变量,代表“Print Working Directory”的缩写,它存储了当前工作目录的完整路径。...当你在终端中执行pwd命令时,它会打印出当前工作目录的路径,这个路径正是$PWD所指向的内容。...命令的作用 ROOT_PATH=$PWD命令的作用是将当前工作目录的路径赋值给一个名为ROOT_PATH的变量。...示例 1:编写 Shell 脚本 假设你正在编写一个 shell 脚本,该脚本需要在当前工作目录下创建一个名为log的目录,并在其中创建日志文件。你可以这样写: #!...示例 3:环境配置 有时候,你可能需要根据当前工作目录来设置环境变量。

6600
  • Linux编程--获取当前时间

    背景 最近在重新编译ijkplayer,并且希望能够打印出来各个阶段的时间,以便对于ijkplayer进一步调优 获取时间 Linux获取时间有多种方案,都需要添加#include time...调用 通过time函数获得当前时间,注意单位为秒,其中time_t结构体是一个有符号的长整型。...return 0; } gettimeofday调用 通过gettimeofday调用返回来的是一个timeval的结构体,其中tv_sec是秒数,tv_usec是微秒数,通过这两个数共同标志当前时间...Seconds: %ld,uSeconds:%ld\n", time.tv_sec,time.tv_usec); return 0; } 注意 因为在手机上测试的时候,通过gettimeofday获取时间...比如,当前通过gettimeofday获取到的t.tv_sec为1534132538,而t.tv_sec*1000的结果为8292133328。

    8K30

    shell获取当前工作目录绝对路径

    ,于是问题就来了,如何获取当前正在执行脚本的绝对路径?...常见的一种误区,是使用 pwd 命令,该命令的作用是“print name of current/working directory”,这才是此命令的真实含义,当前的工作目录,这里没有任何意思说明,这个目录就是脚本存放的目录...你可以试试bash shell/a.sh,a.sh 内容是 pwd,你会发现,显示的是执行命令的路径 /home/ljl,并不是 a.sh 所在路径:/home/ljl/shell/a.sh 另一个误人子弟的答案...this_dir/#"`fi  fi  echo $this_dir 总结一下其实就是一条命令: base_dir=$(cd "$(dirname "$0")";pwd) dirname  $0 ,取得当前执行的脚本文件的父目录...cd  dirname $0 ,进入这个目录(切换当前工作目录) pwd,显示当前工作目录(cd执行后的) 我今天遇到一个问题就是: 需要压缩备份一个目录下的所有的文件,其实代码就2行: 我还是贴全部的吧

    11.7K70

    c#获取当前运行程序所在的目录

    用 A:“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”; B:“Application.ExecutablePath ”:获取当前应用程序文件的路径...().BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”; E:“Environment.CurrentDirectory”:获取当前应用程序的路径,最后不包含“\”; F:“...System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。 3....System.IO.Directory.GetCurrentDirectory() 获取应用程序的当前工作目录。...().BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”; E:“ Environment.CurrentDirectory”:获取当前应用程序的路径,最后不包含“\”; F:

    4.2K10

    Linux .sh文件

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。...Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。linux中.sh文件是什么?linux中.sh文件是脚本文件,一般都是bash脚本。...想运行的话就用sh命令运行sh xxx.sh。注:sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash。...当然,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的。...还有就是在执行脚本的时候是用sh + 脚本名的方式来执行,其实,大部分的时候,简单脚本只要权限设置正确,可以直接执行,不需要sh命令的。

    9.4K20

    javascript获取当前系统时间代码_获取当前系统时间

    JavaScript 获取当前时间time 开发常用时间笔记 JS获取当前时间 Js获取当前日期时间及其它操作 ** 谨记要懂得经常在控制台输出结果 ** var myDate = new Date...myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-...6,0代表星期天) myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数) myDate.getHours(); //获取当前小时数(0-23) myDate.getMinutes...(); //获取当前分钟数(0-59) myDate.getSeconds(); //获取当前秒数(0-59) myDate.getMilliseconds(); //获取当前毫秒数(0-999) myDate.toLocaleDateString...(); //获取当前日期 var mytime=myDate.toLocaleTimeString(); //获取当前时间 myDate.toLocaleString( ); //获取日期与时间 日期时间脚本库方法列表

    18.5K30

    linux当前时间命令(shell脚本获取当前日期前一天)

    ~,会随着目录切换而变化,例如:(root@app00:/bin# ,当前位置在bin目录下) # //表示当前用户是超级用户,普通用户为$,例如:("yao@app00:/root$" ,...//查看当前目录下的所有目录和文件 ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件) ls -l //列表查看当前目录下的所有目录和文件...//删除当前目录下的文件 rm -f 文件名 //删除当前目录的的文件(不询问) rm -r 文件夹名 //递归删除当前目录下此名的目录 rm -rf 文件夹名...//递归删除当前目录下此名的目录(不询问) rm -rf * //将当前目录下的所有目录和文件全部删除 rm -rf /* //...中打包文件的扩展名 .gz //Linux中压缩文件的扩展名 .tar.gz //Linux中打包并压缩文件的扩展名 6.2 打包文件 tar

    4K30

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券