将文件从300个不同文件夹移动到新的单个文件夹中

时间:2016-04-06 10:36:35

标签: linux macos bash terminal

...同时粉碎重复的文件,所以我不会得到同一文件的300个版本。

在Linux或Mac下。我想这可以用一个简单的脚本来完成。我用grep尝试了cp,但是我没有让它工作。

由于

3 个答案:

答案 0 :(得分:0)

怎么样:

$ mkdir /path/to/new_folder
$ find /path/to/old_folder -type f -exec cp -f '{}' /path/to/new_folder \;

(这是非破坏性的,因为它会复制文件)。

答案 1 :(得分:0)

@ trojanfoe的答案会起作用,但是使用xargs和mv而不是exec和cp的速度大约是175倍,例如,对于300个文件,大约需要3秒到~0.02秒。

find old_folder -type f -print0 | xargs -0 mv -n -t new_folder

注意:这不会破坏重复的文件,只是忽略它们;完成后你仍然需要删除源文件夹:

rm -rf old_folder

答案 2 :(得分:-1)

智能地重命名文件是perl。易于使用,而且非常灵活。您应该能够合理地将它用于您的工作,并进行修改以破坏现有文件 - 尽管您还没有提到要“粘贴”的文件版本。如果你想按顺序找到它们,那应该很容易。如果您只想复制第一个,那么使用stat()或某种此类机制应该很容易做到。