Answers:
如果您想以静默方式运行此程序,则可以执行此操作(我刚刚使用它清除了在机架空间块存储上运行的150 GB重复数据..£kerching !!)
fdupes -rdN dir/
r - recursive
d - preserver first file, delete other dupes
N - run silently (no prompt)
for f in $(fdupes -f .); do gvfs-trash $f; done
fdupes -f . | xargs -rd '\n' -- gvfs-trash
如果文件名中包含空格,特殊字符或许多文件,则更好。
fdupes
没有为以空值结尾的记录提供选项,因此没有更好的选择。绝对比以前好得多for f in $(fdupes ...)
。:-]
我会使用这种更安全的方法:
创建一个脚本并将重复的文件移动到新文件夹。如果您移至原始文件夹之外的文件夹,则fdupes不会在第二次扫描时报告重复的文件,因此删除它们会更安全。
#!/bin/bash
# Save default separator definitions
oIFS=$IFS
# define new line as a separator, filenames can have spaces
IFS=$'\n';
# For each file (f) listed as duplicated by fdupes, recursively
for f in `fdupes -r -f .`
do
# Log the files I'm moving
echo "Moving $f to folder Duplicates" >> ~/log.txt
# Move the duplicated file, keeping the original in the original folder
mv $f Duplicates/
done
# restore default separator definitions
IFS=$oIFS