My aim:
mv /*/**/word/* ../../..
but if anything exists in ../../..
then try to mv it as filename_2, if error then try filename_3, etc
I've ended with:
#!/bin/bash -x
let i=2
for file in /cygdrive/c/cygwin/1111/*/members/*/*; do
while [[ -d "${file_$i}/../../.." ]]; do
let i++
done
mv "$file" "${file}/../../.."
if [ "$?" = "1" ]; then
mv "$file" "${file}_$i"
mv "${file}_$i" "${file}_$i/../../.."
fi
let i=2
done
----------------------------------------------------------------------
----------------------------------------------------------------------
function move()
{ local i dest; dest="$2";
while [[ -d $dest ]]; do
let i++; dest="${2}_$i";
done;
mv "$1" "$dest";