0
#!/bin/bash

shopt -s nullglob              

for i in $2; do
  md5sum=$(md5sum -q "$file")        
  echo "-- Found: $file ($md5sum)"
  for duplicate in $2; do
    if [[ "$md5sum" = "$(md5sum -q "$duplicate")" ]]; then
      rm -v "$duplicate"
    fi
  done
done

我正在尝试从 linux 中的目录中删除重复项,我使用此脚本调用此脚本

source  ~/my-applications/bin/remdup

但我得到的错误是找不到 md5 命令并且找不到重复的目录,有什么提示吗?我对 linux 的经验也很少,所以这段代码是由试图拼凑我在互联网上学到的东西组成的,所以欢迎任何提示。调用它的脚本是 shell,这是一个 bash,所以我不知道这是否会改变任何东西

编辑:必须将某些内容更改为 $2,因为它的携带变量来自其他脚本编辑:将第 7 行 md5 更改为 md5sum

4

1 回答 1

0

试试这种方式:

#!/bin/bash

shopt -s nullglob              

for file in "$2"/*
do
  md5sum=$(md5sum < "$file")        
  echo "-- Found: $file ($md5sum)"
  for duplicate in "$2"/*
  do
    [ "$file" = "$duplicate" ] && continue
    [ "$md5sum" = "$(md5sum < "$duplicate")" ] && rm -v "$duplicate"
  done
done
于 2013-11-14T13:21:22.163 回答