한 폴더에서 다른 폴더로 파일을 이동하고 싶지만 대상 파일이 이미 존재하고 크기가 일치하는 경우에만 가능합니다. 파일 이름과 크기가 정확히 일치하지 않으면 이동을 건너뛰고 싶습니다. 기본적으로 중복을 제거하고 있습니다.
제안?
답변1
핵심적으로는 간단한 스크립트를 작성해야 합니다.
#!/bin/bash
src=$1
dst=$2
for f in $src/*; do
name=$(basename "$f")
if [ -f "$dst/$name" ]; then
src_size=$(stat --format '%s' "$f")
dst_size=$(stat --format '%s' "$dst/$name")
echo "$src_size $dst_size"
# If the size match, check if the md5sum match, too
# Then move of simply delete the src file
fi
done
두 파일의 md5sum 또는 sha*sum을 확인하여 실제로 동일한지 확인하거나 비교해야 합니다.
답변2
사용 rename
(때때로 util-linux 로 호출되거나 명확하게 하기 위해 prename
) :perl-rename
rename
cd /one/folder &&
rename '
$other = "/another/folder/$_";
$_ = $other if -e $other && -s $_ == -s $other' ./*