复制和删除具有特定文件扩展名的文件

在本教程中,我们将学习怎样将具有特定扩展名的文件从一个目录复制到另一个目录,稍后我们将删除原始文件。 在本教程中,我们将了解更多关于 cp & find 命令,我们将学习怎样将它们一起使用,以便对我们有益。

目录

cp 命令

cp 命令代表复制,它的命令结构看起来像这样:

cp {OPTION} <Source> <Destination>

为了 example如果您仅将文件(比如说 file1 和 file2)复制到主文件夹中的新目录,那么您只需键入:

cp file1 file2 ~/new

如果要复制整个目录,则必须使用 -r (递归)选项。

cp -r Folder1 ~/new

查找命令

Linux 中的 find 命令用于列出当前或特定目录中的所有文件。 使用它的选项,我们还可以列出具有特定扩展名的文件。 假设我们只想将 mp3 文件复制到另一个目录,我们将首先使用 find 命令列出所有 mp3 文件,然后将其输出重定向到 cp 命令。 为此,请在终端中键入以下命令:

find  -name "*.mp3" -type f
列出所有 Mp3 文件

复制所有具有特定扩展名的文件

如上所述,我们可以简单地将 find 命令的输出通过管道传递给 cp 命令。 但是,您可以通过两种方式复制文件。 您可以维护目录结构(如果文件位于源文件夹中,则复制后它将保留在目标文件夹中),或者您可以复制文件夹中的所有文件而不维护目录结构。 我们将一一讨论这两种方法。

复制时维护目录结构

为了维护目录结构,我们将使用 cp 和 find 命令,如下所示:

cp --parents `find -name *.mp3*` /Destination/Folder
复制时维护目录结构

--parents 选项允许我们在复制时维护目录结构。

复制时不要维护目录结构

要将我们拥有的所有 mp3 文件复制到一个目录,我们可以使用 find 和 cp 命令,如下所示:

find . -name "*.mp3" -type f | xargs cp -vt Destination/Folder
复制而不维护文件结构复制而不维护文件结构

删除具有特定扩展名的文件

现在,假设您想从原始(源)文件夹中删除所有 mp3 文件,因为您已将它们全部复制到新目标。 要执行此操作,我们将简单地使用 find 命令列出所有 mp3 文件,然后在命令末尾添加 -delete 选项。

find . -name "*.mp3" -type f -delete
删除所有 Mp3 文件删除所有 Mp3 文件

概括

使用 GUI 复制和删除文件可能很麻烦,因为搜索单个文件可能需要很多时间。 我们希望通过本文,您能够了解有关 find 和 cp 命令的更多信息,并能够在终端中复制文件。 有关更多详细信息和选项,您可以随时参考 cp 和 find 命令的手册页。