whi*_*ing 10 command-line paths directory mv
我在我的/etc目录中并输入了命令
me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn
Run Code Online (Sandbox Code Playgroud)
我认为这会将文件移动到目录openvpn的子目录中/etc。然而,事情似乎并非如此。我所能确认的是命令已执行。
des*_*ert 51
如果具有此名称的目录不存在,则将该文件重命名为openvpn位于根目录中/。要恢复它,请运行:
sudo mv /openvpn /etc/MyFile.conf
Run Code Online (Sandbox Code Playgroud)
如果目录确实存在,您将文件移动到其中,则还原为:
sudo mv /openvpn/MyFile.conf /etc/
Run Code Online (Sandbox Code Playgroud)
要将其移动到当前目录的现有子目录,您可以运行以下任何一个——这些使用相对路径:
mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/
Run Code Online (Sandbox Code Playgroud)
.是指向当前目录的链接,所以./路径开头的意思是“在这个目录中”。末尾的斜杠表示这openvpn是一个目录,您希望将文件移动到其中。如果您不提供它,如果存在具有此名称的目录,则文件将移入其中,否则文件将重命名为openvpn. 有了/底,mv会警告你,如果该目录丢失,不重命名,所以这是,如果你不希望重命名的安全途径。
/另一方面,如果您的路径以绝对路径开头,而不管当前工作目录如何,则它始终相对于根目录/。对文件和目标使用绝对路径,您的命令将如下所示:
mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/
Run Code Online (Sandbox Code Playgroud)
你需要使用
me@mylaptop:/etc$ sudo mv MyFile.conf openvpn/
Run Code Online (Sandbox Code Playgroud)
在移动MyFile.conf文件到openvpn的子目录/etc/。
另一方面
me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn
Run Code Online (Sandbox Code Playgroud)
会将文件移动到/目录 as openvpn(即重命名为openvpn)(假设/openvpn目录不存在)。