文件在 mv 命令上消失了:

-2 permissions root files directory mv

我试图移动file.py到现有目录 Modules ...

wm@my-laptop:~/Desktop/1linuxandpython$ mv Modules_and_packages.py /Modules_and_packages_Game
Run Code Online (Sandbox Code Playgroud)

它说权限被拒绝,所以我这样做了:

wm@my-laptop:~/Desktop/1linuxandpython$ sudo mv Modules_and_packages.py /Modules_and_packages_Game
Run Code Online (Sandbox Code Playgroud)

然后它就消失了,我搜索答案,发现文件名就是/Modules_and_packages_Game现在,但在任何地方都找不到它。名称怎么可能.py是文件夹名称?

编辑:

在此输入图像描述

ls -l显示文件夹名称,当我执行它时,它会file.py在执行命令之前打开:

$ sudo mv Modules_and_packages.py /Modules_and_packages_Game
Run Code Online (Sandbox Code Playgroud)

我确定该文件夹 Modules_and_packages_Game 在那里吗?

pLu*_*umo 10

mv您的命令的目标是/Modules_and_packages_Game。那是绝对路径。

  • 如果路径存在并且是目录,mv则将源文件移动到该目录。
  • 如果路径不存在,源文件将被重命名为目标名称。

比较man mv并查看三种可能的执行形式mv

SYNOPSIS
  mv [OPTION]... [-T] SOURCE DEST
  mv [OPTION]... SOURCE... DIRECTORY
  mv [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
  Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
Run Code Online (Sandbox Code Playgroud)

最有可能的是,您使用了第一种形式(将 SOURCE 重命名为 DEST),而您想要第二种形式(将 SOURCE 移动到 DIRECTORY)。您的文件现在是(文件系统的根目录)
中名为 的文件。/Modules_and_packages_Game

检查使用ls -l /Modules_and_packages_Game.

要向后移动,请运行:

sudo mv /Modules_and_packages_Game Modules_and_packages.py
Run Code Online (Sandbox Code Playgroud)

现在就正确地做吧。我假设您的目标目录是相对路径Modules_and_packages_Game,而不是绝对路径/Modules_and_packages_Game

要么(使用第二种形式):

mv Modules_and_packages.py Modules_and_packages_Game
Run Code Online (Sandbox Code Playgroud)

或(使用第三种形式):

mv -t Modules_and_packages_Game Modules_and_packages.py
Run Code Online (Sandbox Code Playgroud)

后者更安全,因为如果目标目录不存在,则会报错。