如何将文件从 linux 中损坏的目录中移出?

How do I move files out of a broken directory in linux?

我知道问题的前提可能会令人困惑,但我想了解发生了什么。

最近在用rockchipOK3399单片机做实验(见here) and have installed a linux system on it with TF card installation. Using Putty用串口协议连接,能和OK3399 电脑并通过我的笔记本电脑控制它。

我正在尝试使用 OK3399 系统自学一些 linux。我在/usr/bin目录下创建了一个名为displayvids.sh的bash代码,目的是用mipi相机拍摄可变数量的照片,然后保存在一个目录中以供工作。

我写完了代码,但由于某些原因,当我的工作目录不是 /usr/bin 目录时,我无法 运行 .sh 文件,尽管 /usr/bin 是在 %PATH% 环境变量中。所以,我执行了以下命令:

mv /usr/bin/display* /usr/local/bin

...试图将文件移动到 /usr/local/bin。命令 运行 成功,但是当我尝试 运行 命令时:

cd /usr/local/bin

它告诉我不能 cd 到 bin

从上图可以看出,/usr/local/bin连个目录都算不上。如果目标不是目录,为什么 mv 会成功?如何找回我的 bash 文件?

Why would mv succeed if the target was not a directory?

mv也可以重命名文件:

mv foo.txt bar.txt

您将脚本重命名为 bin 并将其移动到 /usr/local 下。

您可能需要记住下次添加尾部斜杠,如果目标不是目录,则 mv barf:

mv /usr/bin/display* /usr/local/bin/

How can I retrieve my bash file?

重新命名。

mv bin displayvids.sh

为了将来参考,您可以使用 file 命令来(尝试)识别文件的内容,如果已安装:

file bin

可能会说 bin: Bash script 或类似的。