3

I may be going bonkers here, but I'm trying to move a directory to a new location, overwriting the contents (on Linux, using bash).

Everytime I try it, it responds with "mv: cannot move `./src' to a subdirectory of itself"

eg. I have:

/src
/new/dir/src
/$ mv src/ new/dir/

If I delete the destination dir, then it works. I know I can move the contents of the source dir to overwrite the destination, but I'd like to use the same command to overwrite the destination if it already exists, or move the source if it doesn't.

gbjbaanb
  • 3,852
  • 1
  • 22
  • 27

1 Answers1

0

try providing the absolute path to each directory.

i.e. mv /src /new/dir/

also, you can look into rsync to copy files and delete existing files, and all that.

you can also do something like:

#!/bin/sh
if [ -e /new/dir/src/ ]; then
  rm -rf /new/dir/src/
fi
mv /src /new/dir/

unless you're concerned with keeping files in /new/dir/src/, in which case rsync would be a better option.

cpbills
  • 2,692
  • 17
  • 12