Manipulating files in UNIX. Common operations of files Common operations: We will learn to do these...

Post on 17-Dec-2015

220 views 3 download

Tags:

Transcript of Manipulating files in UNIX. Common operations of files Common operations: We will learn to do these...

Manipulating files in UNIX

Common operations of files

• Common operations:

We will learn to do these operations and more....

• Create a file

• Print a file

• Delete a file

• Rename a file

• Move a file from one directory into another directory

Identifying a file

• We need to identify a file before we can perform an operation (like delete) on the file.

• A file can be identified using:

• An absolute (file) path, or       

• An relative (file) path

Absolute file path

• Absolute file path:

• An absolute file path tells the computer how to find a file starting from the root directory

• An absolute file path of a particular file x consists of a list of directory names starting from the root directory "/" to the directory containing the file x and then followed by the name of the file (x)

• The list of names is separated by the "/" symbol

Absolute file path (cont.)

The path for the indicated file (myFile2) is:

• /home/cheung/cs170/myFile2

Relative file path

• Relative file path:

• An relative file path tells the computer how to find a file starting from the current directory

• An relative file path of a particular file x consists of a list of directory names starting from the current directory to the directory containing the file x and then followed by the name of the file (x)

• The list of names is separated by the "/" symbol

Relative file path (cont.)

• Example 1:

If the current directory is /home/cheung, then the path for the indicated file (myFile2) is:

• cs170/myFile2

Relative file path (cont.)

If the current directory is /home/cheung/cs170, then the path for the indicated file (myFile2) is:

• myFile2

Relative file path (cont.)

• Advice:

• When working on files, always change the working directory to the one that contains the files.

• It will save you a lot of key strokes (typing)

Common operations on files

• Common operations on files:

• Create a file

• Print a file to the terminal

• Print a file to the printer

• Delete a file

• Rename a file

• Move a file from one directory (folder) to another directory (folder)

Create a file

• An electronic file is created using a computer application (program) called an editor

(An editor in computer lingo is a program !!!)

• Some commonly used editors that you have used on a PC:

• We will learn to use gedit (GNU editor) in another webnote.

• Microsoft Word

• Notepad

Print the content of a file out to the terminal

• The command (= application) that is used to print the content of a file is:

(cat is an abbreviation of the word catenate)

cat FILE-PATH

Print the content of a file out to the terminal (cont.)

Example:

Catenating multiple files

• The cat command can catenate an arbitrary number of files to the terminal

Example: catenate myFile1 and myFile2 to the terminal:

Redirecting the input and output to a file

• In UNIX, the output that an application prints to the terminal, can be stored to a file

Also, the input that an application reads from the keyboard, can be read from a file. This feature is called:

• Input/Output redirection (or IO redirection for short)

Redirecting the input and output to a file (cont.)

• Redirecting the output to a file:

• The output of any UNIX command can be sent to a file by adding " > FileName" to the command • In other words:

• any UNIX command > FileName

Redirecting the input and output to a file (cont.)

• Example: redirecting the output of "ls" into a file:

Redirecting the input and output to a file (cont.)

• Example: redirecting the output of cat myFile1 myFile2 to a file (named myFile3)

Redirecting the input and output to a file (cont.)

You can see that myFile3 contains the catenation of the files myFile1 and myFile2

So the cat command can be used to catenate multiple files together !!!

(Hence the name cat)

• We will learn about input re-direction at a later lecture

Print a file to the printer

• Use this command to print a file to the default printer:

• When you print a file from a computer in the MathCS lab, the default printer is the printer located inside the area where the Lab assistant(s) sits

lpr File-Path

Print a file to the printer (cont.)

• Example:

will print the file named myFile1 in the current directory to the printer

lpr myFile1

Delete a file

• The command (application) used to delete a file is:

The word rm is an acronym for remove

All files with names matching the File-Path will be removed

rm File-Path

Delete a file (cont.)

• Example

rm myFile1 (will delete the file named "myFile1" in the current directory)

rm /home/cheung/cs170/myFile1 (will delete the file "myFile1" in the directory/home/cheung/cs170)

Delete a file (cont.)

Important note:

• Make sure that your current directory is the correct one when you use a relative path with all UNIX commands !!!

Recovering deleted files in UNIX

• Very important:

• When you delete a file (with rm, the file is really deleted in UNIX

What I mean is: the file is not moved into a trash directory

(That's what happens in Microsoft Windows)

• In other words: your file is gone forever

Recovering deleted files in UNIX

• Restoring a file with a backup version:

• Every night, all files in a UNIX system is saved (backup)

• If you deleted a file, you can recover an older version of the file as of yesterday

• In other words: any work you do after the backup was made, will be lost....

• Send an email to: help@mathcs.emory.edu if you need to recover a file using a backup copy.

Rename a file

• The command (application) used to rename a file with name old-File-Path to the name new-File-Path is:

mv old-File-Path new-File-Path

Rename a file (cont.)

Important:

• The new-File-Path file must not exist; otherwise, 2 things can happen:

1. If the new-File-Path exists and it is the name of a file, then the mv will report an error (and will not rename the file)

2. If the new-File-Path exists and it is the name of a directory, then the mv will move the file old-File-Path into the directory new-File-Path

Rename a file (cont.)

• Example:

will rename the file named myFile2 to the new name decl-of-indep

mv myFile2 decl-of-indep

Rename a file (cont.)

• Illustrated:

Notice that after the file is renamed, the content of the file remains unchanged !

Move a file from one directory (folder) to another directory (folder)

• The command (application) used to mv a file with name file-Path into the directory dir-Path is:

mv file-Path dir-Path

Move a file from one directory (folder) to another directory (folder) (cont.)

• Important:

• This is in fact the same command for renaming a file

• The difference is: dir-Path must be the path of an existing directory.

(If dir-Path, the command will perform a rename operation !!!)

Move a file from one directory (folder) to another directory (folder) (cont.)

• Illustrated:

mv command with non-existing directory

mv command with existing directory