如何在Linux中从一个目录中查找和复制某些类型的文件
时间:2020-03-21 11:47:52 来源:igfitidea点击:
在Linux中查找并将某些类型的文件从一个目录中复制到另一个目录
我们将使用"查找"命令进行组织文件。
查找命令在大多数Unix的发行版上预安装,因此让我们不打扰安装它。
出于本教程的目的,我将展示如何从名为test1的目录中快速查找和复制mp3文件到另一个名为test2的目录。
让我们检查测试目录的内容。
$ls /home/sk/test1
示例输出:
'Bombay Rockers.mp3' 'Marconi Union - Sleepless.mp3' wiua9.jpg books.txt Maruvaarthai.mp3
在上面的结果中看到,Test1目录中有三个MP3文件。
让我们将这些mp3文件复制到test2目录。
为此,请使用命令转到Test1目录:
$cd /home/sk/test1/
然后,运行以下命令以查找并复制与扩展名.mp3匹配的所有文件。
$find -iname '*.mp3' -exec cp {} /home/sk/test2/\;
让我们分解上面的命令,看看每个选项的表现。
- 查找 - 它是在诸如UNIX系统中查找文件和文件夹的命令。
- -iname'* .mp3' - 搜索与扩展名.mp3匹配的文件。
- -exec cp - 告诉我们执行"cp"命令将文件从源复制到目标目录。
- {} - 被"查找"命令发现的文件的文件名替换为自动替换。
- /home/sk/test2/- 目标目录保存匹配文件。
- \ - 表示要执行的命令现在已完成,并在下一个匹配上再次执行命令。
现在,让我们检查Test2目录以验证文件是否已正确复制。
$ls /home/sk/test2
示例输出将是:
'Bombay Rockers.mp3' Maruvaarthai.mp3 'Marconi Union - Sleepless.mp3'
如我们所见,扩展名为.mp3的所有文件已从test1复制到test2目录。
同样,如上所述,我们可以将其他类型的文件复制到我们选择的不同目录。
上面的命令也将从源目录及其子目录中复制所有* .mp3文件。
如果我们不想这样做,请使用-maxdepth标志。
例如,以下命令将仅从源目录中复制所有.mp3文件,但不是从其子目录中复制。
$find -maxdepth 1 -iname '*.mp3' -exec cp {} /home/sk/test2/\;
这样,我们可以在要查找特定类型的文件时节省大量时间。
当我们必须将大量不同类型的文件从一个目录传输到另一个目录时,此技巧可能会有所帮助。