Walter Alejandro Iglesias <w...@roquesor.com> writes:

> On Fri May 10 08:36:50 2024 Walter Alejandro Iglesias wrote
>> Then I do something like this (simplified for clartiy):
>>
>> [...]
>>
>> dirs=$(echo "$files" | grep '/$')
>>
>> for i in $dirs ; do
>>      find $source/$i | sed 's#'$source'##' | sort | uniq > $source_list
>>      find $target/$i | sed 's#'$target'##' | sort | uniq > $target_list
>>      diff $source_list $target_list |\
>>               awk '/^> / { print "'$target'" $NF }' >> $delete_list
>> done
>>
>> cat $delete_list | sed 's/^/delete /'
>> rm -rf $(cat $delete_list | xargs)
>>
>> rm $source_list $target_list $delete_list
>> ------------------------------------------------
>>
>
>
> Today I realized that the loop above is not necesary:
>
> -----------------------------------------------------------
> dirs=$(echo "$files" | grep '/$')
>
> cd && find $dirs | sort | uniq > $source_list
> cd $target && find $dirs | sort | uniq > $target_list
> diff $source_list $target_list |\
>        awk '/^> / { print "'$target'/" $NF }' > $delete_list
>
> cat $delete_list | sed 's/^/delete /'
> rm -rf $(cat $delete_list | xargs)
>
> # Clean
> rm $source_list $target_list $delete_list
> ----------------------------------------------------------------

Another tool you might want to take a look at is rdist(1). It's limited
in some ways, but is a native capability to OpenBSD. It has a long
history.

Reply via email to