为什么我不能再以 Linux 目录形式打开我正在处理的目录?

为什么我不能再以 Linux 目录形式打开我正在处理的目录?

我正在通过 SSH 连接到一台机器以完成一些工作。在我的主目录中,我之前有一个子目录,我们称之为子目录,myDirectory我可以从home目录内部移动到该目录,cd就像移动到任何其他目录一样(即cd ./myDirectory)。

现在,当我运行命令时,出现错误:

“myDirectory 不是目录”

当我运行ls它时myDirectory,它的颜色编码与其他目录不同,也与以前不同。我但是,运行mv someFile ./myDirectory,并且最近以这种方式移动了一些文件(我现在需要访问)。

因此,myDirectory显然指向一个目录,但不再指向~/myDirectory该目录。我相信我理解了这个问题,但我不确定使用什么命令来访问该目录。我如何访问该目录和/或确定其新位置?

运行此命令:

ls -ld myDirectory

生成:

-rw-rw-r-- 1 myUsername myUsername 15029 Nov  2 17:57 myDirectory

答案1

-输出中的第一个ls -ld myDirectory表示myDirectory常规文件,而不是目录。

我只能猜测这是怎么发生的。一种可能是你(或某人/某物)重命名/移动/删除了原始目录myDirectory,因此没有名为的条目myDirectory;然后你将某个常规文件重命名someFilemyDirectory

mv someFile ./myDirectory重命名someFilemyDirectory。旧的常规文件myDirectory(如果存在)将丢失。这意味着如果您以这种方式重命名多个文件,则只有最后一个文件可以轻松恢复;它的名称为myDirectory

为了避免此类事故,请在引用您认为是目录的内容时添加尾部斜杠。如果您这样做了

mv someFile ./myDirectory/

并且./myDirectory不是目录,该工具会发出抱怨而不移动任何东西。

到目前为止,我们假设someFile是常规文件。如果它可以是目录类型(这也是一个文件)然后(取决于你想做什么)最好附加/.代替/

相关内容