如何比较bash中的文件名

时间:2018-05-17 18:24:13

标签: bash

我需要比较“dir1”是否与“dir2”具有相同的文件,并理想地删除“dir2”中的类似内容。

到目前为止,我已尝试使用find命令:

    $ find "$dir1" "$dir2/" "$dir2/" -printf '%P\n' | sort | uniq -u^C

但这不起作用,虽然文件名相似,但两个文件夹中文件的扩展名不同。

那我怎么去比较bash中的文件名?

1 个答案:

答案 0 :(得分:1)

听起来你只需要使用一个循环:

for path in "$dir1"/*; do
  base=${path##*/}  # remove everything up to and including the last / to get the name
  if [ -e "$dir2/$base" ]; then
    echo rm -r "$dir2/$base"
  fi
done

遍历$dir1中的所有内容,如果$dir2有一个同名文件,则将其删除。

如果您对脚本要删除正确的文件感到高兴,请删除echo