met*_*Dev 3 filesystem command-line files hidden-files
我有一个文件,里面有一些凭据;出于某种原因,它现在被隐藏了。我可以在我的桌面上看到有两个文件夹。和..名字。哪儿来的?我的文件是sample.txt
. 我搞砸了 mv 命令,文件被隐藏了。现在,我想弄清楚我的文件在哪里。
我需要帮助!
编辑:这些是我使用的命令:
1861 mv sample.txt Downloads
1872 find sample.txt
1887 mv .. sample.txt
1888 mv ... sample.txt
Run Code Online (Sandbox Code Playgroud)
这里的问题是,诸如mv source target
, whentarget
不以 a 结尾的命令的行为/
取决于是否存在名为 的现有目录(或指向目录的现有符号链接)target
。有时,这会使他们做的事情与您的预期不同。
你展示了四个命令。第一个命令很重要:
mv sample.txt Downloads
Run Code Online (Sandbox Code Playgroud)
该命令已移动或重命名sample.txt
。
如果sample.txt
首先在当前目录中没有调用任何内容,则mv sample.txt Downloads
失败且未进行任何更改。但是,根据您的描述,这听起来像有是这样的文件。所以:
Downloads
当前目录中有一个名为的目录,则mv sample.txt Downloads
尝试移动sample.txt
到名为 的目录中Downloads
,并且可能成功。如果Downloads
是指向目录而不是实际目录的符号链接,也会发生这种情况。Downloads
当前目录中没有被调用的目录,则mv sample.txt Downloads
尝试重命名sample.txt
为被调用Downloads
。(不是Downloads.txt
,只是Downloads
。)如果这是在Desktop
目录中,则可能会发生第二种情况,因为您可能在Downloads
目录中没有Desktop
目录。但如果你这样做了,你就处于第一种情况。
因此,当您运行mv sample.txt Downloads
名为Downloads
. 根据之前存在的东西,这要么是原名文件sample.txt
,或者它应该包含 sample.txt
。
至于您显示的其他三个命令,它们根本不应该做任何更改,也不应该期望它们透露有关第一个命令的效果的任何有用信息。
find sample.txt
除非在当前目录中sample.txt
有直接驻留的东西,否则不会显示任何内容。如果要直接或间接地在当前目录中的任何位置查找名称为 的文件sample.txt
,则可以使用find . -name sample.txt
. (当然,这不会找到名称不再是 的文件sample.txt
。)
in mv .. sample.txt
,..
是父目录的名称,也就是当前目录所在的目录,如果当前目录是/
,则父目录就是/
它自己。每个目录都有一个..
具有此含义的条目。该命令尝试重命名..
要调用的父目录的条目sample.txt
。这应该只是失败并出现错误,在这种情况下,这会有些令人困惑地报告为“设备或资源繁忙”。
在mv ... sample.txt
,...
没有特殊对待。目录总是包含特殊条目.
和..
,但名称...
并不特殊。所以你可能没有一个名为...
.
...
在当前目录中有一个文件被调用,并且没有被调用的目录sample.txt
(并且没有被调用的sample.txt
指向目录的符号链接),那么...
将被重命名为sample.txt
. 如果sample.txt
已经存在并且既不是目录也不是目录的符号链接,它将被替换并且(除非有其他硬链接)它可能难以或不可能恢复,具体取决于随后写入的文件系统的数量。但是,这不太可能,因为您可能从未有过名为 的文件...
,而且该命令是在重命名时可能成功的命令之后运行的sample.txt
到位或将其放在其他地方,并且由于您当前没有看到sample.txt
在运行命令的目录中调用的文件。...
,另一个条目sample.txt
是目录或指向目录的符号链接,mv ... sample.txt
将尝试移动...
到该sample.txt
目录(或符号链接的目标目录)。