Questions tagged «pwd»

有关进程的工作目录以及`pwd`命令的问题


3
导航文件系统时,Unix如何跟踪用户的工作目录?
假设我登录到UNIX系统上的Shell并开始点击命令。我最初从用户的主目录开始~。我可能会从那里cd到目录Documents。 此处更改工作目录的命令非常直观直观:父节点具有可以访问的子节点列表,并且大概使用搜索的(优化)变体来定位子节点的存在。输入用户输入的名称,然后“更改”工作目录以匹配此名称-如果我在那里输入错误,请更正我。甚至可能更简单,shell只是简单地“天真”地尝试完全按照用户的意愿尝试访问目录,并且当文件系统返回某种类型的错误时,shell会相应地显示响应。 但是,我感兴趣的是,当我向上浏览目录时,即到父级或父级的父级,相同的过程是如何工作的。 给定我未知的(可能是“盲目的”位置)Documents,即整个文件系统树中许多具有该名称的目录之一,Unix如何确定下一步应该放置的位置?它是否参考pwd并检查了?如果是,如何pwd跟踪当前的导航状态?
29 filesystems  pwd 


3
PS1 ='$(pwd)'为什么有效,为什么与PS1 = $(pwd)不同
为什么当我输入此命令时,提示会更改为我的目录? PS1='$(pwd)' 我使用的是单引号,也就是说没有插值,也就是echo '$(pwd)'-→$(pwd) 此外,请说我们已经弄清了它为什么有效……为什么它的功能不同于PS1=$(pwd)?(完全没有引号) 通过不同的方式,我的意思是如果我使用引号,那么当我浏览终端时,提示将不断更改为当前目录。但是,如果我不使用引号,那么提示符将始终保留为我首次输入命令时所在的目录PS1=$(pwd) 为什么?
18 bash  zsh  prompt  pwd 

7
使用目录树/文件名时的紧凑bash提示
在具有Ubuntu 14.04和的系统中bash,我具有PS1以以下内容结尾的变量: \u@\h:\w\$ 因此提示显示为 user@machinename:/home/mydirectory$ 但是,有时,当前目录的名称很长,或者它位于内部名称很长的目录中,因此提示看起来像 user@machinename:/home/mydirectory1/second_directory_with_a_too_long_name/my_actual_directory_with_another_long_name$ 这将填充终端中的行,并且光标将移至另一行,这很烦人。 我想获得类似的东西 user@machinename:/home/mydirectory1/...another_long_name$ 有没有一种方法可以定义PS1变量来“包装”和“压缩”目录名称,以使其不超过一定数量的字符,从而获得较短的提示?

2
pwd和/ bin / pwd之间的奇怪区别
我使用将符号链接添加到当前目录ln -s . aa。如果执行cd aa,然后执行pwd,响应为/home/sim/aa。 但是,如果执行/bin/pwd该命令,它将打印/home/sim(当前目录未更改)。 这种差异从何而来?
15 shell  symlink  pwd 

4
删除目录时出现“ ls”错误
我有两个弹壳。第一个位于目录A中。第二个删除目录A,然后重新创建它。当我回到第一个shell并输入时ls,输出为: ls: cannot open directory .: Stale file handle 为什么?我认为第一个外壳程序(在不存在的目录中保持打开状态的外壳程序)将在等待下一个命令时“冻结”,并且不会“意识到”该目录已被删除并重新创建。除了字符串以外,shell是否对它的当前工作目录保留“更深”的引用$PWD?

2
为什么pwd不接受--physical之类的长选项?
当我显示pwd命令手册时,它说--physical支持长选项 $ man pwd PWD(1) User Commands PWD(1) NAME pwd - print name of current/working directory SYNOPSIS pwd [OPTION]... DESCRIPTION Print the full filename of the current working directory. -L, --logical use PWD from environment, even if it contains symlinks -P, --physical avoid all symlinks 但是,当我键入以下内容时,它将失败 $ pwd --physical -bash: …
11 bash  rhel  pwd 

3
$ PWD发生任何更改后,如何在bash中运行命令?
zsh提供了一些不错的钩子函数,包括chpwd用于在用户更改目录后运行函数。 # zsh only function greet() { echo 'hi'; } chpwd_functions+=("greet") cd .. # hi pushd # hi popd # hi 我试图在bash中模拟它。 限制条件: 它必须在交互式和非交互式shell中都可以工作,我认为这意味着它不能依赖于 $PROMPT_COMMAND 它无法重新定义cd,因为我希望它可用于更改目录的任何命令(例如pushd和popd) 它必须在用户的命令之后运行,因此trap "my_function" DEBUG不起作用,除非我可以在其中以某种方式说“首先运行$BASH_COMMAND我们被困的设备,然后再执行此操作……”我看到可以避免自动运行$BASH_COMMAND if extdebug启用并且 trap函数返回1,但我不认为我想强制执行extdebug,并且返回1成功(但已修改)的命令似乎是错误的。 最后一部分-“在用户命令后运行”-是当前让我感到困惑的部分。如果我可以在每个命令之后运行一个函数,则可以让它检查自上次检查以来目录是否已更改。例如: function check_pwd() { # true in a new shell (empty var) or after cd if [ "$LAST_CHECKED_DIR" …
10 bash  hook  pwd 

1
$ PWD的词源
的词源是$PWD什么?是缩写吗? 我知道有一个pwd可以打印工作目录的命令,但是在我看来,$CWD为当前工作目录命名该变量更有意义,因为外壳程序变量包含数据而不是打印它们。
9 shell  history  pwd 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.