我正在通过 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
;然后你将某个常规文件重命名someFile
为myDirectory
。
mv someFile ./myDirectory
重命名someFile
为myDirectory
。旧的常规文件myDirectory
(如果存在)将丢失。这意味着如果您以这种方式重命名多个文件,则只有最后一个文件可以轻松恢复;它的名称为myDirectory
。
为了避免此类事故,请在引用您认为是目录的内容时添加尾部斜杠。如果您这样做了
mv someFile ./myDirectory/
并且./myDirectory
不是目录,该工具会发出抱怨而不移动任何东西。
到目前为止,我们假设someFile
是常规文件。如果它可以是目录类型(这也是一个文件)然后(取决于你想做什么)最好附加/.
代替/
。