如何在 Linux 中移动大量文件? [CLI]

有大量文件要移动? 不用担心,可以通过 Linux 命令行轻松完成。 通过 GUI 手动移动大量文件将太耗时并且可能会出错。 除非您的系统规格很高,否则它也会影响您的系统资源。

使用终端复制大量文件

在 Linux 中移动大量文件

Linux 提供了一些简单的命令行工具来移动甚至复制 Linux 中的大量文件。 我们将详细讨论它们。

1. mv 命令

MV 命令用于移动文件或文件夹。 如果您有相同扩展名的文件,您可以通过执行以下命令将它们从一个地方移动到另一个地方:

sudo mv *.<extension> /<destination> 

这里,* 表示具有指定扩展名的所有文件。 例如,我们有一些带有扩展名的文件 。文本文件 我们需要将它们移动到 测试 目录位于 桌面.

sudo mv *.txt /home/sid/Desktop/test 

如果您有不同扩展名的文件,请执行以下命令:

sudo mv *.txt *.sh /home/sid/Desktop/test 

但是,如果要移动十万个文件,通过 mv 命令移动它们需要一长串参数。 Linux 对单个命令使用的最大参数数量有限制。 mv 命令会报错:参数列表太长。 因此,这可以使用 find 命令来完成。

2.查找命令

命令用于搜索目录中的文件。 我们可以使用 find 命令以及 mv 命令或 xargs 命令等其他命令来移动大量文件。 这 xargs command 用于从标准输入构建和执行命令行。

截图来自 2022 02 28 09 56 20

例如,我们在 files 目录中有 100001 个文件,使用 mv 命令移动时会显示错误:

sudo mv *.txt /home/sid/Desktop/files 
截图来自 2022 02 28 09 45 26

要使用 find 命令移动这些文件,请执行以下命令:

find . -maxdepth 1 -name "*.txt"  -exec sh -c 'mv "[email protected]" "$0"' /home/sid/Documents/files {} + 
截图来自 2022 02 28 10 05 28

在上面的命令中,将目标替换为要复制文件的位置。 您可以根据需要更改 -name 选项后的 *.txt,而不是 *.txt。

移动大量文件的另一种方法是使用 xargs 代替 -执行执行以下命令:

find . -maxdepth 1 -iname "*.txt" -type f -print0 | xargs -0 mv -t /home/sid/Desktop/files 
截图来自 2022 02 28 10 11 32

结论

所以,我们看到了如何在 Linux 中移动大量文件。 通过 GUI 执行此操作确实不是一个好主意,因为它会停止响应,甚至您的系统可能会在复制大量文件时挂起。 同样,我们也可以使用一些命令行工具来复制文件。 感谢您的阅读!