Manipulating directories in Linux

How to create, move, and delete directories in Linux with the mkdirmv, and rmdir commands. You’ll also learn how to copy a directory recursively and how to remove a directory that is not empty.

This tuXfile teaches you how to manipulate directories in Linux. If you’d like to learn how to manipulate files, check out the Manipulating files in Linux tuXfile.

Creating directories >

Creating a new, empty directory is very easy. You use the mkdir command:
mkdir dir1

That’s it. It’s really that easy!

Removing directories >

There are two commands you can use for removing directories. If the directory is empty, you can use rmdir:
rmdir dir1

You can use rmdir only if the directory is empty. If you want to remove a directory with all its contents, you can use rm with the -r option. The -r option tells rm to remove a directory recursively:
rm -r dir1

It goes without saying that you can cause a lot of trouble with rm -r if you’re not careful! In some cases it might be a good thing to use the -i option when deleting a directory with its contents so that you’d be prompted before each file in the directory gets deleted:
rm -ir dir1

Copying and moving directories >

For copying and moving directories you can use the cp and mv commands just like you use them with files. Yeah, I know. If you’ve already tried to copy a directory with cp, you’ve probably noticed that cp just complains at you. Probably it says something like cp: omitting directory yadda yadda. You see, the cp command wants you to use the -r option if you want to copy a directory with its contents. The -r means “copy recursively”:
cp -r dir1 dir2

The above creates a directory named dir2 whose contents will be identical to dir1. However, if dir2 already exists, nothing will be overwritten: the directory dir1 will be copied into the dir2 directory under the name dir2/dir1.

When renaming directories, you use the mv command exactly the same way as with files:
mv dir1 dir2

When dealing with directories, mv works a bit like cp does. If dir2 doesn’t exist, the above will rename dir1 to dir2, but if dir2 exists, the directory dir1 will be moved into the dir2 directory under the name dir2/dir1.

What next? >

If you’ve been reading through the tutorials in the Linux command line basics section, congratulations! You now have the very basic, essential skills for using the Linux command line. However, although you can tolerate the command line at this point, you still haven’t learned the neat little tricks that actually make the Linux command line a lot better than MS-DOS.

Related tuXfiles

  • Automatic file name completion
    The next tutorial in the Linux command line basics series. Learn a great little trick that makes the command line a lot easier to use.