Previous Section  < Day Day Up >  Next Section

Recipe 9.15. Copying, Moving, and Renaming Files and Directories

9.15.1 Problem

You've got directories, you've got files. How do you get the files into the directories? How do you change a file's name? And how do you make a copy?

9.15.2 Solution

Use the cp and mv commands.

This command copies two files from the current working directory into the ~/images2 directory:

$ cp -v navbar.gif redheart.gif  ~/images2

`navbar.gif ' -> `/home/terri/images2/navbar.gif'

`redheart.gif ' -> `/home/terri/images2/redheart.gif'

If you're overwriting files, you might want to use the -b flag to create backups of the old files in the destination directory:

$ cp -bv icon-zip.gif  main.gif ~/data2

`icon-zip.gif' -> `/home/terri/data2/icon-zip.gif' (backup: `/home/terri/data2/icon-zip.gif~')

`main.gif' -> `/home/terri/data2/main.gif' (backup: `/home/terri/data2/main.gif~')

What if you need to preserve the full filepath? Use the —parents flag:

$ cp -v —parents  ~/homes/images/kitchen.jpg ~/data2

'/home/terri/homes/images/kitchen.jpg' -> 

'/home/terri/data2/homes/images/kitchen.jpg'

Use the -s flag to create soft links to files, instead of copying the files:

$ cp -s navbar.gif  redheart.gif  ~/images2

Copy a directory and all of its contents with the -r flag:

$ cp -rv  ~/homes/images/  /shared/archives

Moving and renaming files are done with the mv command. To move two files to another directory, use:

$ mv -v about.gif  arrow.gif  ~/data2

`about.gif' -> `/home/terri/data2/about.gif'

`arrow.gif' -> `/home/terri/data2/arrow.gif'

To rename a file, use:

$ mv -v downloads.gif  email.gif

`downloads.gif' -> `email.gif'

9.15.3 Discussion

A graphical file manager, such as Nautilus, Konqueror, Midnight Commander, Gentoo file manager, gmc, or Rox Filer, often makes chores like these go faster and easier.

9.15.4 See Also

  • mv(1), cp(1)

  • Linux in a Nutshell

    Previous Section  < Day Day Up >  Next Section