4.5. Manipulating Files in Your Current Working
Directory
Below is a summary of basic shell commands:
Action | Command | Format | Details |
---|
Copy a file | cp | cp filename destination | Copies the file filename to the location
destination. |
List Directory Contents | ls | ls | The ls command lists files in
the current working directory. |
Move a file | mv | mv which_file destination | To move a file from one directory to another, use
mv. |
Rename a file | mv | mv oldname newname | The use of the mv command
changes the name of the file from
oldname to
newname. |
Table 4-2. Commands for Manipulating Files
Each of the commands listed above have options that may be
specified on the command line. More information about each is
provided below.
4.5.1. Viewing Directory Contents with ls
To see what is in your current working directory, use the
ls command.
Many options are available with the ls
command. The ls command, by itself, does
not show all of the files in the directory. Some files are
hidden files (also called dot files) and can only be seen with
an additional option specified to the ls
command.
| Tip |
---|
| To view all ls command options, read the
man page by entering man ls at a shell
prompt. To print the man page, enter man ls | col
-b | lpr at the prompt.
|
Enter the command ls -a. Now you an view
the hidden "dot" files.
Viewing all the files using the ls -a
command can give you plenty of detail, but you can view still
more information by using multiple options.
To see the size of a file or directory, when
it was created, and so on, add the
long option (-l) to
the ls -a command. This command shows the
file creation date, its size, ownership, permissions, and
more.
You do not have to be in the directory whose contents you
want to view to use the ls command. For
example, to see what is in the /etc/
directory from your home directory, type:
The following is a brief list of options commonly used
with ls. Remember, you can view the full
list by reading the ls man page
(man ls).
-a (all) — Lists all files in
the directory, including hidden files
(.filename). The
.. and . at the
top of your list refer to the parent directory and the
current directory, respectively.
-l (long) — Lists details about
contents, including permissions (modes), owner, group,
size, creation date, whether the file is a link to
somewhere else on the system and where its link points.
-F (file type) — Adds a symbol
to the end of each listing. These symbols include
/, to indicate a
directory; @, to indicate
a symbolic link to another file; and
*, to indicate an
executable file.
-r (reverse) — Lists the
contents of the directory in reverse sort order.
-R (recursive) — Lists the
contents of all directories below the current directory
recursively.
-S (size) — Sorts files by
their sizes.
The ls command can also be used with
wildcards to display information on files or directories that
match a certain pattern. To list all files and
directories that begin with the letter "a", enter the following command.
Remember that Linux is case-sensitive. The above command
will not display information on files that start with
"A".
4.5.2. Copying files with cp
To create a copy of an existing file, use the
cp command.
While cp does have options, they are not used as often as
those of other commands. To view these options, read the man
page by entering man cp at a
shellprompt.
To copy a file within the current directorym specify the
new name as the third wod on the command line.
cp original_file new_file |
This command creates a new file, named new_file,
with the same content as the original file.
To copy a file to a different direcoty, specify a path as the
third word on the command line:
cp original_file /dir1/dir2/ |
This command creates a copy of original_file in dir2/. If
the last part of the path is a filename instead of a
directory, the copy has that new name.
cp original_file /dir1/dir2/new_file |
This creates a new file named new_file
with the contents of original_file in
dir2/.
Alternatively, if you know where the file is and would like to
place a copy of it in your current directory, enter the path
as word two and "." as the third word.
The above command places a copy of
filename in your current working
directory.
4.5.3. Moving files with mv
To move a file or directory from one location to another, use
the command mv.
Common useful options for mv
include:
-i (interactive) — Prompts
you if the file you have selected overwrites an existing
file in the destination directory.
-f (force) — Overrides the
interactive mode and moves without prompting. Be very
careful about using this option.
-v (verbose) — Shows the
progress of the files as they are being moved.
To move a file from the current directory to another location,
enter a path as the third word on the command line.
This command would remove filename
from the current working directory and place it in
/dir1/.
Alternatively, a path to the location of the file may be
entered as the second word and "." as the thrid
word. This moves the file from the location specified in word two into your current working directory.
The above command moves the file filename
from the /tmp/ directory into your
current working directory.
Finally, both words two and three may be paths.
mv ../../filename /tmp/new_name |
The command above moves the file filename
from a directory two levels up to the
/tmp/ directory while renaming the file
new_name.
| Note |
---|
| You can only move files to a directory that already exists:
Linux will not create a new directory with the
mv command. |
4.5.4. Renaming files with mv
To rename a file or directory, use the mv command.
To rename a file with mv, the third word on
the command line must end in the new filename.
mv original_name new_name |
The above command renames the file
original_name to
new_name.
mv ../original_name new_name |
The above command moves the file
original_name from one directory up to
the current directory and renames it
new_name.
mv original_name /dir1/dir2/dir3/new_name |
The above command moves the file
original_name from the current working
directory to directory dir3/ and renames
it new_name.
4.5.5. Delete files with rm
| Caution |
---|
| Deleting a file with rmis permanent
— you cannot un-delete it.
|
To delete a file using rm enter the
following at a shell prompt:
The second word can also be a path, but must end in a
file.
There are many options to rm. To view
them all, enter man rm at the shell
prompt.
-i (interactive) — Prompts
you to confirm the deletion. This option can stop you from
deleting a file by mistake.
-f (force) — Overrides
interactive mode and removes the file(s) without
prompting. This might not be a good idea, unless you know
exactly what you are doing.
-v (verbose) — Shows the
progress of the files as they are being removed.
-r (recursive) — Deletes a
directory and all files and subdirectories it contains.
| Tip |
---|
| The interactive, or -i, option for rm causes it to ask if
you are sure before permanently deleting a file or
directory. You can make this the default behavior for rm by editing the .bashrc
file. This file is located in your home directory. You can
edit the file with any text editor.
gedit /home/user/.bashrc
Add the following line somewhere in the file. The end of the file is a good location. Save the file. At the command line, enter the following
command. Now you will be asked to enter [Y] before
deleting a file or directory with
rm |
4.5.6. Deleting directories
There are two commands that can be used to delete directories.
The first is rmdir and the second is
rm.
The rmdir command will only delete
directories that are empty. If you are concerned about
accidentally deleting a directory that is not empty, use this
command.
The above command permanently deletes
directory/ if it is empty.
If you want to delete a directory and all of its contents, use
the command rm -rf. Note that if you enter
rm -rf, the shell will not ask if you are
sure before permanently deleting the directory.
The above command deletes /dir1/ and
every file and sub-directory that exists inside.