如何使用命令行搜索下载文件夹内的重复下载?

如何使用命令行搜索下载文件夹内的重复下载?

我正在寻找通过命令行搜索Downloads文件夹内重复下载的方法。

假设我下载了test.mp3,但后来意外地再次下载了它,第二次下载将显示为test(1).mp3。我想搜索文件名末尾但在文件扩展名之前有“(1)”的任何文件。执行此操作的命令是什么?

答案1

我想这就是你要找的东西:

for f in ~/Downloads/*; do
    if [[ $f == *\([1-9]\).* ]]; then
        echo "$f"
    fi
done
  • 编辑:@steeldriver 指出 globs 可以做到上述事情,所以更简单的解决方案是这样的:

    printf '%s\n' ~/Downloads/*\([1-9]\).*
    

我更喜欢普通的 Bash,但你可以使用以下方法在一行中完成此操作find

find ~/Downloads/ -name '*\([1-9]\).*'

答案2

或者,我们可以计算校验和并打印重复项(这与下载重复项名称约定无关)。

md5sum ~/Download/*.mp3 | awk 'a[$1]{print $2 }{ a[$1]=$2}'

相关内容