我有一个大目录“Pictures”,其中有很多单独的子目录,每个子目录中都有不同数量的图像文件。我想将子目录中的每个文件移动到一个统一的目录中。
需要克服的一项挑战是各个子目录中存在许多同名文件。即图片/Subdir1/dsc_001.jpg、图片/Subdir15/dsc_001.jpg、图片/Subdir120/dsc_001.jpg
由于我想保留两者,因此我尝试在查找一行中使用备份标志,如下所示:
find . -type f -exec mv --backup=t '{}' /media/DATA-HDD/AllImages \;
但是,经过测试,所有源文件都会移动,但不会发生重命名。我只有一个文件,它恰好是最后移动的文件。我也尝试以相同的方式使用 cp,但结果相同。
在此虚拟机上运行 Ubuntu 20.04。
我已经检查了 coreutils 的人,这就是它所说的要做的,所以不确定为什么它没有按计划工作。
答案1
事实证明,单行命令确实正是我所需要的,并且一直在工作。我最初不明白的是输出/备份文件实际上是一个隐藏文件。不确定那是格式。我没有在终端中列出目录,而是只在 GUI 中查找,并且没有打开查看隐藏文件。当我运行 ls -l 后,我看到这些文件一直在那里。
-rw-rw-r-- 1 mike mike 140302 Jan 11 2020 test.JPG
-rw-rw-r-- 1 mike mike 140302 Jan 11 2020 test.JPG.~1~
-rw-rw-r-- 1 mike mike 140302 Jan 11 2020 test.JPG.~2~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:34 test.txt
-rw-rw-r-- 1 mike mike 0 Aug 15 02:34 test.txt.~1~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:32 test.txt.~2~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:34 test.txt.~3~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:34 test.txt.~4~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:43 test.txt.~5~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:43 test.txt.~6~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:34 test.txt.~7~
-rw-rw-r-- 1 mike mike 0 Aug 15 02:34 test.txt.~8~