On 2009-07-01 18:20 (+0300), Teemu Likonen wrote: > find -type f -print0 | xargs -0 sh -c 'for file in "$@"; > do dir=$(dirname -- "$file") && base=$(basename -- "$file") && > (cd "$dir" && echo mv -- "$base" "${base#???}"); done' ignore Let's simplify it a bit: find -type f -print0 | xargs -0 sh -c 'for file in "$@"; do dir=$(dirname -- "$file") && base=$(basename -- "$file") && echo mv -- "$file" "$dir/${base#???}"; done' ignore This does it without "cd".