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