On Sun May 12 11:40:05 2024 tux2bsd wrote
> Hi Walter
>
> mktemp makes temporary unique filenames like this:
>
> delete_list=$(mktemp)
> source_list=$(mktemp) 
> target_list=$(mktemp) 
> # Do your code. If you want to keep something you do
> # that appropriately then:
> rm $delete_list $source_list $target_list
>
>

This version can deal with files with special characters and spaces:

# Remove files from target directory
delete_list=$(mktemp -t delete.XXXXXXXXXX) || exit 1
source_list=$(mktemp -t source.XXXXXXXXXX) || exit 1
target_list=$(mktemp -t target.XXXXXXXXXX) || exit 1

dirs=$(echo "$files" | grep '/$')

cd && find $dirs | sort | uniq > $source_list
cd "$target" && find $dirs | sort | uniq > $target_list
diff $source_list $target_list |
        grep '^> ' | sed 's#^> #'$target'/#' > $delete_list

cd &&
while read line; do
        echo "delete $line"
        rm "$line"
done < $delete_list

# Clean
rm $source_list $target_list $delete_list

Reply via email to