为什么“mv file /dir”不会将文件移动到当前工作目录的子目录中?

为什么“mv file /dir”不会将文件移动到当前工作目录的子目录中?

我在我的/etc目录中输入了命令

me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn

我以为这会将文件移动到目录openvpn的子目录中/etc。然而,事情似乎并非如此。我能确认的是命令已执行。

答案1

如果不存在具有此名称的目录,则将文件重命名为openvpn位于根目录中/。要还原此操作,请运行:

sudo mv /openvpn /etc/MyFile.conf

如果目录确实存在而您将文件移动到了其中,那么恢复如下:

sudo mv /openvpn/MyFile.conf /etc/

要将其移动到当前目录的现有子目录,您可以运行以下任何一个 - 使用相对的路径:

mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/

.是指向当前目录的链接,因此./路径开头的斜杠表示“在此目录中”。末尾的斜杠表示这openvpn是一个目录,你想将文件移动到其中。如果你不提供它,文件将被已移动如果存在同名目录,则放入其中,否则文件将被改名openvpn结尾/mv如果目录丢失,将发出警告,并且不是重命名,如果您不想重命名,这就是安全的方法。

如果你的路径以/另一方面开始,那么它就是绝对路径与当前工作目录无关,它始终相对于根目录/。使用文件和目标的绝对路径,您的命令将如下所示:

mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/

进一步阅读

答案2

你需要使用

me@mylaptop:/etc$ sudo mv MyFile.conf openvpn/

MyFile.conf文件移动到openvpn的子目录中/etc/

另一方面

me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn

会将文件移动到/目录openvpn(即重命名为openvpn)(假设/openvpn目录不存在)。

答案3

当您移动文件时,您会告诉操作系统要将其放入的目录,或者要赋予它的新路径。

你告诉操作系统“/openvpn”。所以它会这样做 - 检查 /openvpn 是否存在(意思是位于根目录中名为“openvpn”的对象) 并且是一个目录,如果是,请将您的文件移动到其中,否则,如果/openvpn是一个文件或不存在,请重命名并移动您的文件,以便现在可以作为/openvpn访问。

你想要它做的是将其移动到在当前目录中的“openvpn”目录中,而不是文件系统根目录中的那个(前导“/”表示这个目录)。所以你必须指向移动命令中的 dir,而不是绝对路径“/openvpn”。以下任何一种都可以:

  • mv MyFile.conf openvpn- 在当前目录中查找此“openvpn”
  • mv MyFile.conf /etc/openvpn- 查找绝对路径 /etc/openvpn
  • mv MyFile.conf openvpn/- 在我的当前目录中查找名为 openvpn 的目录
  • mv MyFile.conf ./openvpn- 使“当前目录”更加明显

简短版本 - 您可能使用“/”表示“我当前的目录”,因此“/openvpn”表示“我当前目录中的 openvpn”。但前导“/”仅表示“根目录”,因此“/openvpn”表示“根目录中的 openvpn”。您需要的只是使用“openvpn”或“openvpn/”,意思是“我当前目录中的 openvpn”。当前目录“。

答案4

完成其他答案:

mv file.txt /location

对于 Windows 来说,与

mv file.txt c:\location

文件系统在Linux中被认为是文件系统层次标准, 或者跳频简而言之,它可以帮助您根据文件的性质和内容了解文件的放置位置。

第一个文件夹(相当于c:Windows 中的)是/

相关内容