Question

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.

Was it helpful?

Solution

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

OTHER TIPS

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

mv a a_
mv a_/a .
rmdir a_
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top