【问题标题】:How to print ONLY the current directory that I'm currently in [duplicate]如何仅打印我当前所在的当前目录[重复]
【发布时间】:2018-11-03 21:59:09
【问题描述】:

我正在尝试找到一种方法来正确获取我当前所在目录的名称。如果我在一个名为 HW04 的目录中,并且 pwd 打印出 home/zachary/HW04,我将如何仅打印出 HW04?还是使用 pwd 来获得更多的名字?有更简单的方法吗?

提前致谢。

【问题讨论】:

  • basename $PWD
  • 嘿尝试使用基本名称 home/zachary/HW04

标签: bash unix pwd


【解决方案1】:

你可以使用echo $(basename $(pwd))(如果你想打印它,也可以只使用basename $(pwd));请参阅 basename(1)pwd(1)(可能是内置的 shell)和 bash reference manualcommand substitution 部分。

您可能会找到一些 bash prompt configuration 来设置提示符来告诉您这些事情。

【讨论】:

    【解决方案2】:

    它会给你这样的例子

    嘿,试试basename home/zachary/HW04

    使用基本名称 使用 basename 命令是提取当前目录最简单最简单的方法:

    basename /usr/local/bin
    

    输出将是bin 但是,它在更改目录变量的 shell 脚本中没有用。您可以将其与反引号内的 pwd 结合使用,使其更具动态性:

    cd /usr/local/binbasename pwd 垃圾桶 将参数替换与 echo 一起使用 bash 脚本语言充满了很多不错的技巧,包括参数替换,它允许您操作或扩展变量。您可以使用带有 ${var##pattern} 语法的参数替换,它会从 $var 中删除与 $var 的前端匹配的 $Pattern 中最长的部分。看一个例子:

    cd /var/log/squidecho ${PWD##*/} 乌贼 PWD 是保存当前路径的环境变量,## 是告诉脚本删除它找到的所有内容到 */ 的指令。换句话说,它会删除最后一个 / 之前的所有内容,只留下最后一个字符串,这里是当前目录 squid。您可以在 Advanced Bash-Scripting Guide 中了解有关参数替换和其他操作变量的方法的更多信息。

    使用 awk 和 rev 更复杂的解决方案结合使用 awk(一种模式扫描实用程序)和 rev(一种从文件或标准输入反转行的实用程序):

    cd /usr/share/cups/datapwd |转 | awk â€âF / '{print $1}' |转 数据 这样的脚本一步一步的理解会容易很多:

    密码 /usr/share/cups/数据 密码 |转 atad/supc/erahs/rsu/ 密码 |转 | awk â€âF / '{print $1}' 阿塔德 密码 |转 | awk â€âF / '{print $1}' |转 数据 -F 选项表示您应该按字段分隔,其中字段分隔符是 /,并且您应该打印字段 1。

    使用 sed 最后,您可以使用精心制作的正则表达式在流编辑器 sed 中解析 pwd 输出。这种方法可能具有教育意义,但并不实用:

    cd /home/smith/musicpwd | sed 's,^(./)\?([^/]),\2,' 音乐 为了更好地理解其工作原理,请删除转义字符 (),这是特殊字符(例如“(”:

    sed 's,^(./)?([^/]),\2,'

    密码。在类 Unix 和其他一些操作系统中,pw​​d 命令(打印工作目录)将当前工作目录的完整路径名写入标准输出。该命令是大多数 Unix shell 中的内置 shell,例如 Bourne shell、ash、bash、ksh 和 zsh。

    pwd 显示当前工作目录。示例:/home/foobar

    pwd -P 显示当前工作目录的物理路径——不带符号链接名,如果有的话。示例:如果站在 /home/symlinked 目录中,这是 /home/realdir 的符号链接,这将显示 /home/realdir

    pwd -L 显示当前工作目录的逻辑路径 - 带有符号链接名称,如果有的话。示例:如果站在 /home/symlinked 目录中,这是 /home/realdir 的符号链接,这将显示 /home/symlinked

    https://en.wikipedia.org/wiki/Pwd

    【讨论】:

      【解决方案3】:

      也可以使用awk

      pwd | awk -F'/' '{print $NF}'
      

      这只会给你当前文件夹的名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多