相关疑难解决方法(0)

为什么我不能删除“。” 目录?

我尝试删除“。” 目录。我以为我可以删除我的工作目录而不必进入父目录。

我的问题的重点是寻找有关 linux 系统如何工作以删除文件的一些见解。

filesystems directory rm

41
推荐指数
2
解决办法
7772
查看次数

pwd 和 /bin/pwd 之间的奇怪区别

我添加了一个符号链接到当前目录ln -s . aa。如果我执行cd aa,然后我执行pwd,响应是/home/sim/aa

但是如果我执行/bin/pwd它会打印/home/sim(当前目录没有改变)。

这种差异从何而来?

shell symlink pwd

17
推荐指数
2
解决办法
5682
查看次数

删除您所在的目录时 bash 的行为

我正在使用GNU bash, version 4.3.42(1)-release (x86_64-redhat-linux-gnu).

我创建了一个虚拟目录hello并搬到了那里。进入后/tmp/hello,我删除了目录本身。

$ pwd
/tmp/hello
$ rmdir $PWD
Run Code Online (Sandbox Code Playgroud)

我检查了一下,我还在那个目录中。

$ pwd
/tmp/hello
Run Code Online (Sandbox Code Playgroud)

然后我尝试移动到目录本身,当然这是不可能的(即使我已经在那里):

$ cd $PWD
bash: cd: /tmp/hello: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是后来我尝试了cd .,因为它应该与cd $PWD. 这工作......不知何故:

$ cd .
cd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,现在我处于一个新的“东西”中:

$ pwd
/tmp/hello/.
Run Code Online (Sandbox Code Playgroud)

如果我尝试转到上一个目录,它当然会失败:

$ cd -
bash: cd: /tmp/hello: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有趣的是,man在那里甚至一个页面都不起作用:

$ …
Run Code Online (Sandbox Code Playgroud)

bash

6
推荐指数
1
解决办法
1587
查看次数

退出删除的目录

假设我正在编辑一些文件。我有(说)一个终端打开和一个 gui 文件管理器。我目前在/my/very/long/and/winding/directory/path终端。在我的 gui 中,我/my/very/long/and/winding/directory 在终端中删除 Back,我尝试cd ..并收到错误消息,因为该目录不再存在。没什么大不了。我可以打字cd /my/very/long/and/winding回到我想去的地方。但是,如果我懒得输入,是否有返回到最近仍然存在的目录的好方法?

编辑:cd ../../在这种特殊情况下是一种解决方案。但我想知道是否有更一般的答案,我不知道我需要退多少步。

command-line

5
推荐指数
2
解决办法
243
查看次数

标签 统计

bash ×1

command-line ×1

directory ×1

filesystems ×1

pwd ×1

rm ×1

shell ×1

symlink ×1