27
Unit 4 Working with Files and Directories

04 qlx02vfiles

Embed Size (px)

DESCRIPTION

LINUX

Citation preview

Page 1: 04 qlx02vfiles

Unit 4

Working with Files and Directories

Page 2: 04 qlx02vfiles

Objectives

After completing this unit, you should be able to:

• Describe the different file types

• Describe file and pathnames

• Create, delete, copy, move and list directories

• Create, delete, copy and move files •View the

content of both text and binary files

• Split large files into smaller ones

Page 3: 04 qlx02vfiles

A File

A file is:

A_collection_of_data\nA_stream_of_characters_or_a_"byte_stream"\nNo_stru cture_is_imposed_on_a_fil e_by_th e_operating_system\n

\n = newline character _ = space character

Page 4: 04 qlx02vfiles

File Types

directory

100 walrus

164 .PROFILE

238 MYFILE475 .BASHR

C

Page 5: 04 qlx02vfiles

special file

>

hardware devices for example: /dev/lpO (printer device)

logical devices for example: /dev/null (null device)

Page 6: 04 qlx02vfiles

Linux Filenames

• Should be descriptive of the content

• Should use only alphanumeric characters

UPPERCASE, lowercase, number, @, _

• Should not include embedded blanks

• Should not contain shell metacharacters:

* ? > < / ; & ! [ ] | \ ' " ( ) { }

• Should not begin with + or - sign •Are case sensitive

• Filenames starting with a . are hidden

•The maximum number of characters for a filename is 255

Page 7: 04 qlx02vfiles

Linux Pathnames

Full pathnames:

Start from / (the root directory)

Relative pathnames:

Start from the present working directory

Examples: (working directory is /home/tux1) /home/tux1/doc/mon_report (full)doc/mon_report (relative)../TUX3/PGMS/SUBA (RELATIVE)./test (a file in the current dir)~/test (same as above)

Page 8: 04 qlx02vfiles

Example Directory Structure

Page 9: 04 qlx02vfiles

Where Am I?

•The pwd command (print working directory) can be used to find out what your current working directory is:

$ pwd

/HOME/TUXL $

Page 10: 04 qlx02vfiles

Change Current Directory

•With the cd (change directory) command: $ cd dir_name

$ cd doc (relative)

$ cd /HOME/TUXL/DOC (full)$ cd ~TUX1/DOC (home)

$ cd (Go to your home directory)

$ cd .. (GO ONE DIRECTORY UP)$ cd - (GO TO PREVIOUS DIRECTORY)

Page 11: 04 qlx02vfiles

Create Directories_

•With the MKDIR (make directory) command: $ mkdir dir_name

$ mkdir /home/tuxl/doc (full pathname)

$ cd /home/tuxl$ mkdir doc (relative pathname)

Page 12: 04 qlx02vfiles

Removing Directories

•With the rmdir (remove directory) command: $ rmdir dir_name

$ pwd/HOME/TUXL $ RMDIR DOC TESTrmdir: doc: Directory not empty $

directory must be empty!

Page 13: 04 qlx02vfiles

Working with Multiple Directories

• Create and remove multiple directories simultaneously with the -p flag

$ mkdir -p dir1/dir2/dir3 $ rmdir -

p dir1/dir2/dir3

Page 14: 04 qlx02vfiles

List the Contents of Directories

•With the LS command: LS [ DIR/FILE ]

$ ls /home tuxl tux2 tux3

Important options:-l long listing (more information) -a lists all files (including hidden) -t lists files sorted by change date -R lists contents recursively

Page 15: 04 qlx02vfiles

The touch Command

•The touch command creates an empty file, or updates the modification time of an existing file

$ LS -L

-rw-rw-r-- 1 tuxl penguins 512 Feb 24 11 :10 docs

$ touch docs

$ ls -l

-rw-rw-r-- 1 tux1 penguins 512 Mar 5 15 :37 docs

$ touch new

$ ls -l

-rw-rw-r-- 1 tux1 penguins 512 Mar 5 15 :37 docs

-rw-rw-r-- 1 tux1 penguins 0 Mar 5 15 :37 new

Page 16: 04 qlx02vfiles

Copying Files (1)

•The cp command copies files: cp source[s] [target]

Copying one file to another: $ cp .bashrc bashrc.old

Copying multiple files into a target directory:$ cp doc/mon_report doc/walrus /tmp

Page 17: 04 qlx02vfiles

Copying Files (2)

• cp can recursively copy directories with the -R flag

$ cp -R /home/tuxl/doc /tmp

To prevent cp from overwriting existing files, use:

$ cp -R -i /home/tuxl/doc /tmp cp:

overwrite Vtmp/doc/walrus'?

Page 18: 04 qlx02vfiles

Moving and Renaming Files (1)

•With the MV command: mv source[s] [target]

To move a file do another directory: $ mv doc/walrus ../../tmp

To rename a file: $ mv doc

documents

Use the -i option to prevent mv from overwriting existing files!

Page 19: 04 qlx02vfiles

Moving and Renaming Files (2)

• Moving and renaming files can be combined by mv:

$ cd $

pwd/HOME/TUXLmv /tmp/walrus./test/rob

To move a directory: $ mv ./test /tmp

mv is recursive by default

Page 20: 04 qlx02vfiles

Listing File Contents

•With the cat (concatenate) command:

$ cat filel file2 ... $ cat walrus"THE TIME HAS COME", THE WALRUS SAID, "TO TALK OF MANY THINGS:Of shoes - and ships - and sealing wax -Of cabbage - and kings -And why the sea is boiling hot -And whether pigs have wings." $

Page 21: 04 qlx02vfiles

Displaying Files Page by Page

•With the more or less commands:

$ less walrus

"THE TIME HAS COME", THE WALRUS SAID, "TO

TALK OF MANY THINGS:

Of shoes - and ships - and sealing wax -Of

cabbage - and kings -And why the sea is

boiling hot -And whether pigs have wings."

/TMP/TEST/WALRUS 1-6/6 (END)

Page 22: 04 qlx02vfiles

Displaying Binary Files

•With the od command:$ OD /USR/BIN/PASSWD

0000000 042577 043ll4 00040l 00000l 000000 000000 000000 0000000000020 000002 000003 00000l 000000 l07300 004004 000064 000000

0000040 05l430 000000 $

000000 000000 000064 000040 000006 000050

»WITH THE strings command:

$ strings /usr/bin/passwd /lib/ld.so.l_gmon_start__deregister_frame_info_register_frame_info• • •

$

Page 23: 04 qlx02vfiles

Removing Files

•With the rm command:

$ rm test/rob $ ls test/rob

ls: rob: No such file or directory

If unsure, use -i option$ rm -i test/robrm: remove ^test/rob'?

To remove files and directories recursively: $ rm -ir test/

Page 24: 04 qlx02vfiles

Splitting Files

•YOU CAN SPLIT A FILE INTO A SMALLER FILES WITH THE split commandsplit -b <Bytes> file [prefix]

$ LS -L-rw-r--r-- 1 root root 4194304 Feb 21 13: 31 large

$ split -b 1024k large large.

$ ls -l-rw-r--r-- 1 root root 4194304 Feb 21 13 :3

1large

-rw-r--r-- 1 root root 1048576 Feb 21 13 :33

large.

aa

-rw-r--r-- 1 root root 1048576 Feb 21 13 :33

large.

ab

-rw-r--r-- 1 root root 1048576 Feb 21 13 :33

large.

ac

-rw-r--r-- 1 root root 1048576 Feb 21 13 :33

large.

ad

Page 25: 04 qlx02vfiles

File Managers

• Linux also offers different graphical file managers •Nautilus (GNOME) • Konqueror (KDE)

Page 26: 04 qlx02vfiles

Checkpoint

T/F 1. Linux imposes an internal structure on a regular file (not

a directory or special file).

2. Which of the following is not a legal filename?

a. ~tux1/mydocs.tar.gzb. /home/tux1/mydoc(1)c. /var/tmp/.secret.docd. /home/../home/tux1/one+one

3. What command would you use to copy the file

/home/tux1/mydoc to /tmp, and rename it at the same time

to tempdoc?

Page 27: 04 qlx02vfiles

Unit Summary

•There are three types of files:• Ordinary• DIRECTORY• Special

•The Linux file system structure is a hierarchical tree.

• Files are accessed using either full or relative path names. A full pathname always begins with a /.

•The following commands can be used with directories: pwd, cd, mkdir, rmdir, touch and ls

•The following commands can be used with files: cat, more, less, cp, mv, rm, touch, od, split and strings