如何使用命令行将所有文件从一个文件夹移动到另一个文件夹?

如何使用命令行将所有文件从一个文件夹移动到另一个文件夹?

我想知道如何使用命令行将所有文件从一个文件夹移动到另一个文件夹。

假设我在“下载”文件夹中,有 100 个文件我想移动到“视频”文件夹中,而不必写下所有文件的名称。

答案1

打开终端并执行以下命令:

mv  -v ~/Downloads/* ~/Videos/

它会将所有文件和文件夹从下载文件夹移动到视频文件夹。


要移动所有文件(但不移动文件夹):

如果您有兴趣将所有文件(但不是文件夹)从“下载”文件夹移动到“视频”文件夹,请使用此命令

find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos

仅移动下载文件夹中的文件,而不移动子文件夹中的文件:

如果您要移动“下载”文件夹中的所有文件,但不移动“下载”文件夹中的任何文件,请使用以下命令:

find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos

这里,-maxdepth选项指定 find 应尝试的深度,1即仅查找 find 命令中指定的目录。您可以尝试使用23也可以进行测试。

查看 Ubuntu查找手册页详细解释

答案2

mv ~/Downloads/* ~/Videos

它将移动您想要的目录中的所有文件(包括子文件夹)mv。如果您想要cp(复制)或rm(删除),您将需要-r(递归)选项来包含子文件夹。

答案3

对于简单情况:

mv ~/Downloads/* ~/Videos

如果你还想移动点(隐藏)文件,那么设置点团shell 选项。

shopt -s dotglob
mv ~/Downloads/* ~/Videos

这使得 shell 选项设置保持不变。

对于一次性 dotglob 使用,请在子 shell 中运行命令:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)

答案4

要将包含或不包含内容的目录移动到新名称,就像使用命令mv重命名文件一样:

mv -T dir1 dir2

在哪里:

  • -T将目标视为普通文件
  • dir1是目录的原始名称
  • dir2是目录的新名称

注意:dir2不一定存在。

我希望这可以为某些人节省大量时间,作为新手,在此之前,我会用新名称创建一个目录,然后将目录的内容移动到之前创建的目录中。

用于子目录

当目标目录的子文件夹中保存了许多文件时,此命令很有用Downloads/mp4。例如,在此示例中,运行mv -T Downloads/mp4 Videos将导致mp4子文件夹已删除并且其中包含的所有文件都将移动到视频文件夹。

相关内容