我试图自动将所有文件从folder2移动到具有大量重复文件名的folder1。
如果文件名匹配,我想根据大小和/或日期删除或移动/替换文件夹2中的文件。基本上对于重复的文件名,如果file2比file1更新或更大,我想移动/替换。否则,删除file2。
如果file2文件名是唯一的,只需移动它即可。
我知道我可以用" mv -u / source / * / destination"但似乎不是一个尺寸参数。
提前致谢。
答案 0 :(得分:0)
解决方案并不困难。只需按照您需要的顺序应用测试,copy
或delete
:
#!/bin/bash
for i in folder_2/*; do
[ -f "folder_1/${i##*/}" ] && \ # test if duplicate
[ "$i" -nt "folder_1/${i##*/}" ] && \ # test newer than
[ $(stat -c%s "$i") -gt $(stat -c%s "folder_1/${i##*/}") ] && \ # test bigger than
cp -a "$i" folder_1 || \ # if so copy/replace
rm "$i" # if no delete
done