我的桌面上有两个图像文件夹,每个文件夹都有大约 600 张图像。这两个文件夹都有一些重复的图像和一些具有相同文件名的图像。如何将两者合并在一起 - 我不介意重复的图像或更改的文件名,但我希望它们仅在一个文件夹中。
附言。我对使用命令行非常陌生。
答案1
由于您是命令行新手,我将一一介绍这些步骤,并逐一进行解释。
当您打开终端/shell/命令行时,您将看到如下命令提示符:
username:~ $
或类似的东西。您几乎肯定会从您的主目录开始,其中包含您的用户名。
假设您的两个图像文件夹是folder1
和folder2
。你说它们在桌面上,所以首先我们切换到目录Desktop
:
cd Desktop
该cd
命令是“更改目录”命令,其作用正如其听起来的那样。
现在,我们将使用该mv
命令,它当然代表“移动”。
mv -i folder1/* folder2/
我使用了该-i
标志,它代表“交互式”,每次出现文件名冲突时都会出现提示。系统会询问您是否要覆盖目标文件。
此后,您必须通过重命名保留的文件来手动解决任何冲突*,folder1
这样它们就不会与folder2
.最后,再次运行上述命令,但这一次应该不会出现冲突。
毕竟,你的folder1
目录应该是空的,所以继续删除它
rmdir folder1
您已经完成了!
我真的建议你阅读一个简单的 bash 教程,例如这个学习基础知识。
- 请注意,当然可以通过重命名 中的每个文件来以编程方式解决命名冲突
folder1
,但我试图让事情变得简单。
答案2
带有图形用户界面
如果您不愿意,则不必使用命令行!任何文件管理器至少都可以让您在目录之间导航、创建和删除目录以及移动文件。当源目录中的文件与目标目录中的文件同名时,某些文件可能比其他文件更复杂。
如果您想检测(并删除)重复图像,您可以使用格其。 (安装您的发行版的geeqie
软件包。)它是一个图像查看器,具有一些不错的功能,包括持久的“目录模式”(显示当前目录中的图像列表,带有缩略图,并让您轻松导航)和重复检测(菜单“文件”→“查找重复项”,然后拖放所有图像)。您还可以对当前选定的图像执行基本的文件操作(复制、移动、删除和粗略重命名功能)。
使用命令行
如果您确实想使用命令行,花园头写了一本很好的入门书。我会添加一些更高级的东西。
要将所有文件从folder1
移至folder2
,除非 中已存在同名文件folder2
,您可以使用
yes n | mv -i folder1/* folder2/
名称冲突的文件将保留在 中folder1
,然后您可以检查它们以决定是否要重命名它们或删除它们。
如果您想将文件重命名为具有唯一的名称,可以应用一些策略。如果图像有EXIF数据,您可以重命名该文件以包含额外信息,例如照片拍摄日期。即使没有 EXIF 数据,您也可能需要包含一些图像特征,例如尺寸。看如何根据 EXIF 数据重命名照片?,重命名图像以在名称中包含创建日期,如何重命名所有文件并将图像大小添加到文件名,按年龄批量重命名图像文件,并在文件名中添加日期和变量,……对于某些可能性。如果您只想让文件具有唯一的名称,您可以给他们编号。
如果您想使用命令行实用程序检测视觉上相似的图像,您可以使用findimagedupes
(再次,安装您的发行版的软件包)。
答案3
如果你有mv
来自格努,您可以将文件从一个foo
目录移动到另一个bar
目录,使用以下命令重命名现有文件:
mv --backup=numbered foo/* bar
(在您害怕丢失的文件上运行此命令之前,您应该在示例数据上进行测试......)