Remove first a from $HOME/a/a/b/c

584 views Asked by At

I was reading a book on UNIX when I came across this question. You have a directory structure

    $HOME/a/a/b/c

where the first a is empty. How do you remove it and move the lower directories up? I have looked on the man pages of the commands rmdir and rm but could find nothing. Please help me.

2

There are 2 answers

0
falsetru On BEST ANSWER

You should move subdirectory before remove parent directory. So..

mv $HOME/a/a $HOME
rmdir $HOME/a

But, this does not work because name a collide.

Rename the parent directory to avoid name collision.

mv $HOME/a $HOME/temp_a
mv $HOME/temp_a/a $HOME
rmdir $HOME/temp_a
0
DusteD On

Since you cannot move a/a into a, you could instead rename a.

mv a a_
mv a_/a .
rmdir a_