前几天,我想知道如何将多个文件类型从一个目录移动(不复制)到另一个目录。我已经知道如何查找并将某些类型的文件从一个目录复制到另一个目录。但是,我不知道如何同时移动多种文件类型。如果你曾遇到这样的情况,我知道在类 Unix 系统中从命令行执行该操作的一个简单方法。
同时移动多种文件类型
想象一下这种场景,你在名为 dir1
的目录中有多种类型的文件,例如 .pdf、 .doc、 .mp3、 .mp4、 .txt 等等。我们来看看 dir1
的内容:
$ ls dir1
file.txt image.jpg mydoc.doc personal.pdf song.mp3 video.mp4
你希望将某些文件类型(不是所有文件类型)移动到另一个位置。例如,假设你想将 .doc、 .pdf 和 .txt 文件一次性移动到名为 dir2
的另一个目录中。
要同时将 .doc、 .pdf 和 .txt 文件从 dir1
移动到 dir2
,命令是:
$ mv dir1/*.{doc,pdf,txt} dir2/
很容易,不是吗?
现在让我们来查看一下 dir2
的内容:
$ ls dir2/
file.txt mydoc.doc personal.pdf
看到了吗?只有 .doc、 .pdf 和 .txt 从 dir1
移到了 dir2
。
在上面的命令中,你可以在花括号内添加任意数量的文件类型,以将它们移动到不同的目录中。它在 Bash 上非常适合我。
另一种移动多种文件类型的方法是转到源目录,在我们的例子中即为 dir1
:
$ cd ~/dir1
将你选择的文件类型移动到目的地(即 dir2
),如下所示:
$ mv *.doc *.txt *.pdf /home/sk/dir2/
要移动具有特定扩展名的所有文件,例如 .doc,运行:
$ mv dir1/*.doc dir2/
更多细节,参考 man 页:
$ man mv
移动一些相同或不同的文件类型很容易!你可以在 GUI 模式下单击几下鼠标,或在 CLI 模式下使用一行命令来完成。但是,如果目录中有数千种不同的文件类型,并且希望一次将多种文件类型移动到不同的目录,这将是一项繁琐的任务。对我来说,上面的方法很容易完成工作!如果你知道任何其它一行命令可以一次移动多种文件类型,请在下面的评论部分与我们分享。我会核对并更新指南。
这些就是全部了,希望这很有用。