All pastes #278939 Raw Edit

Mine

public text v1 · immutable
·published 2006-12-14 15:25 UTC
rendered paste body
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 up with:


#!/bin/bash
let i=2;
for file in /cygdrive/c/cygwin/1111/*/members/*/*; do

	mv "$file" "${file}/../../.."
	if [ "$?" = "1" ]; then
		while [[ -d "${file%/../..}_$i" ]]; do 
			let i++
		done
	name2="${file}_$i"
	mv "${file}" "${name2}"; mv "${name2}" "${name2}/../../.."
	fi
	let i=2

done
----------------------------------------------------------------------------------------



Well, it does what I want,
BUT needs to be run several times in order to mv all the dirs needed,
AND, what I get at the end is:
dirname
dirname_2
dirname_2_2