17
Junior Level Linux Certification

101 3.3 perform basic file management

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 101 3.3 perform basic file management

Junior Level Linux Certification

Page 2: 101 3.3 perform basic file management

Exam Objectives

Key Knowledge Areas

Copy, move and remove files and directories individually. Copy multiple files and directories recursively. Remove files and directories recursively. Use simple and advanced wildcard specifications in commands. Using find to locate and act on files based on type, size, or time. Usage of tar, cpio and dd.

Objective 3: GNU and Unix Commands

Perform basic file management Weight: 4

Terms and Utilities

Cp find mkdir mv ls rm rmdir touch tar cpio dd file gzip gunzip bzip2 file globbing

2

Page 3: 101 3.3 perform basic file management

Process text streams using filters

Rundown of commands

commands Overview

3

cp - copy files

find - find files based on command line specifications

mkdir - make a directory

mv - move or rename files and directories

ls - list files

rm - remove files (and directories, if you ask nicely)

rmdir - remove directory

touch - touch a file to update its timestamp

file globbing - *, ?, [abc] and {abc,def} wildcards

Page 4: 101 3.3 perform basic file management

basic file management

ls - lists the contents of directories

Files, directories and ls

4

In output of ls, the meaning of columns left to right are:•file type and permissions (d – directory, l – symbolic link, r – read, w – write, x –executable or searchable)•number of links to the file•user name •group name•size (in bytes)•date•time•file name

After file name may print additional info. “/” – it's a directory, “*”– it's executable, “>somewhere” it‘s symbolic link

bar@foo:~> cd /etc/ppp/bar@foo:/etc/ppp> ls -latotal 68drwxr-x--- 5 root dialout 4096 2003-05-12 12:36 ./drwxr-xr-x 53 root root 8192 2003-06-04 10:51 ../lrwxrwxrwx 1 root root 5 2003-03-03 11:09 ip-down -> ipup*drwxr-xr-x 2 root root 4096 2002-09-10 19:40 ip-down.d/-rwxr-xr-x 1 root root 9038 2002-09-10 19:40 ip-up*drwxr-xr-x 2 root root 4096 2002-09-10 19:40 ip-up.d/-rw-r--r-- 1 root root 8121 2002-09-09 22:32 options-rw------- 1 root root 1219 2002-09-09 22:32 pap-secrets#type+perm link user group size date time name

Ex:

Page 5: 101 3.3 perform basic file management

basic file management

special characters and strings that can take the place of any characters, or specific characters.

File globbing (wildcards)

5

foo:/etc $ ls -l host*-rw-r--r-- 1 root root 17 Jul 23 2000 host.conf-rw-rw-r-- 2 root root 291 Mar 31 15:03 hosts-rw-r--r-- 1 root root 201 Feb 13 21:05 hosts.allow-rw-rw-r-- 1 root root 196 Dec 9 15:06 hosts.bak-rw-r--r-- 1 root root 357 Jan 23 19:39 hosts.denyfoo:/etc $ ls [A-Z]* -laddrwxr-xr-x 3 root root 4096 Oct 14 11:07 CORBA-rw-r--r-- 1 root root 2434 Sep 2 2002 DIR_COLORS-rw-r--r-- 1 root root 2434 Sep 2 2002 DIR_COLORS.xterm-rw-r--r-- 1 root root 92336 Jun 23 2002 Muttrcdrwxr-xr-x 18 root root 4096 Feb 24 19:54 X11

Ex:

shell expands the following special characters just in case they are part of a file name.Filename expansion is only performed if the special characters are in quote

~ /home/user or /root (the user's home directory) echo ~/.bashrc* Any sequence of characters (or no characters) echo /etc/*ost*? Any one character echo /etc/hos?[abc] Any of a, b, or c echo /etc/host[s.]{abc,def,ghi} Any of abc, def or ghi echo /etc/hosts.{allow,deny}

Page 6: 101 3.3 perform basic file management

basic file management

mkdir – make directory

Directories and files

6

[jack@foo tmp]$ mkdir dir1[jack@foo tmp]$ mkdir dir2 dir3[jack@foo tmp]$ ls -latotal 20drwxrwxr-x 5 jack jack 4096 Apr 8 10:00 .drwxr-xr-x 12 jack users 4096 Apr 8 10:00 ..drwxrwxr-x 2 jack jack 4096 Apr 8 10:00 dir1drwxrwxr-x 2 jack jack 4096 Apr 8 10:00 dir2drwxrwxr-x 2 jack jack 4096 Apr 8 10:00 dir3[jack@foo tmp]$ mkdir parent/sub/somethingmkdir: cannot create directory `parent/sub/something': No such fileor directory[jack@foo tmp]$ mkdir -p parent/sub/something[jack@foo tmp]$ find../dir1./dir2./dir3./parent./parent/sub./parent/sub/something

Ex:

To make directory, use mkdir. By default, parent directory must exist, but with the -p switch mkdir will also create the required parent directories.

Page 7: 101 3.3 perform basic file management

basic file management

Permissions for a new directory are determined by the umask value, unless you set themmanually using the -m switch.

Directories and files

7

umask Directory mode Directory mode

000 0777 drwxrwxrwx002 0775 drwxrwxr-x022 0755 drwxr-xr-x027 0750 drwxr-x---

Page 8: 101 3.3 perform basic file management

basic file management

rmdir – remove directory

Directories and files

8

[jack@foo tmp]$ rmdir dir1[jack@foo tmp]$ rmdir dir2 dir3[jack@foo tmp]$ rmdir parentrmdir: `parent': Directory not empty

[jack@foo tmp]$ rmdir parent/sub/something/[jack@foo tmp]$ rmdir parentrmdir: `parent': Directory not empty

[jack@foo tmp]$ rmdir parent/sub[jack@foo tmp]$ rmdir parent

[jack@foo tmp]$ find.[jack@foo tmp]$ rmdir /etcrmdir: `/etc': Permission denied

Ex:

rmdir can be used to remove empty directories. If directory contains any files and directories, it will fail.(rm -r can remove).

Page 9: 101 3.3 perform basic file management

basic file management

touch – update a file's time stamp

Directories and files

9

[jack@foo tmp]$ mkdir dir4[jack@foo tmp]$ cd dir4[jack@foo dir4]$ ls -ltotal 0[jack@foo dir4]$ touch newfile[jack@foo dir4]$ ls -ltotal 0-rw-rw-r-- 1 jack jack 0 Apr 8 10:28 newfile

Ex:

originally written to update the time stamp of files. However, due to programming error, touch would create an empty file if it did not exist. By the time this error was discovered, people were using touch to create empty files, and this is now an accepted use of touch.

[jack@foo dir4]$ touch newfile[jack@foo dir4]$ ls -ltotal 0-rw-rw-r-- 1 jack jack 0 Apr 8 10:29 newfile

The second time we run touch it updates the file time

Page 10: 101 3.3 perform basic file management

basic file management

Directories and files

10

Ex: [jack@foo dir4]$ touch file-{one,two}-{a,b}

[jack@foo dir4]$ ls –l

total 0-rw-rw-r-- 1 jack jack 0 Apr 8 10:33 file-one-a-rw-rw-r-- 1 jack jack 0 Apr 8 10:33 file-one-b-rw-rw-r-- 1 jack jack 0 Apr 8 10:33 file-two-a-rw-rw-r-- 1 jack jack 0 Apr 8 10:33 file-two-b-rw-rw-r-- 1 jack jack 0 Apr 8 10:29 newfile

touch can create more than one file at a time

Page 11: 101 3.3 perform basic file management

basic file management

rm – remove files

Directories and files

11

[hack@foo dir4]$ cd ..[hack@foo tmp]$ ls dir4/file-one-a file-one-b file-two-a file-two-b newfile[hack@foo tmp]$ rm dir4/file*a[hack@foo tmp]$ ls dir4/file-one-b file-two-b newfile

Ex:

[hack@foo tmp]$ rm -ri dir4rm: descend into directory `dir4'? yrm: remove regular empty file `dir4/newfile'? yrm: remove regular empty file `dir4/file-one-b'? yrm: remove regular empty file `dir4/file-two-b'? yrm: remove directory `dir4'? y

rm -r can be used to remove directories and the files contained in them. rm -i to specify interactive behaviour (confirmation before removal).

Ex:

rm -rf is used to remove directories and their files without prompting

[hack@foo tmp]$ rm -rf dir4

Ex:

Page 12: 101 3.3 perform basic file management

basic file management

cp – copy files

Copying and moving

12

[[jack@foo jack]$ ls[jack@foo jack]$ cp /etc/passwd .[jack@foo jack]$ lspasswd

copying a file (/etc/passwd) to a directory (.)Ex:

cp -v is verbose about the progress of the copying process.

[jack@foo jack]$ mkdir copybin[jack@foo jack]$ cp /bin/* ./copybin[jack@foo jack]$ cp -v /bin/* ./copybin`/bin/arch' -> `./copybin/arch'`/bin/ash' -> `./copybin/ash'`/bin/ash.static' -> `./copybin/ash.static'`/bin/aumix-minimal' -> `./copybin/aumix-minimal'`/bin/awk' -> `./copybin/awk'

Ex:

cp has 2 modes of usage:1.Copy one or more files to a directory – cp file1 file2 file3 /home/user/directory/2.Copy a file and to a new file name – cp file1 file13

If there are more than 2 parameters given to cp, then last parameter is always the destination directory.

Page 13: 101 3.3 perform basic file management

basic file management

mv – move or rename files

Copying and moving

13

[jack@foo jack]$ mkdir fred[jack@foo jack]$ mv -v fred joe`fred' -> `joe'[jack@foo jack]$ cp -v /etc/passwd joe/`/etc/passwd' -> `joe/passwd'[jack@foo jack]$ mv -v joe/passwd .`joe/passwd' -> `./passwd'

use -v so that mv is verbose.Ex:

mv is the command used for renaming files[jack@foo jack]$ mv -v passwd ichangedthenamehaha`passwd' -> `ichangedthenamehaha'[jack@foo jack]$ cp /etc/services .

Ex:

mv (like cp) has 2 modes of operation:1.Move one or more files to a directory – mv file1 file2 file3 /home/user/directory/

2.Move a file and to a new file name (rename) – mv file1 file13

If there are more than 2 parameters given to mv, then last parameter is always the destination directory.

Page 14: 101 3.3 perform basic file management

basic file management

find – able to find files

find

14

[jack@tonto jack]$ find /usr/share/doc/unzip-5.50/ /etc/skel//usr/share/doc/unzip-5.50//usr/share/doc/unzip-5.50/BUGS/usr/share/doc/unzip-5.50/INSTALL/usr/share/doc/unzip-5.50/LICENSE/usr/share/doc/unzip-5.50/README/etc/skel//etc/skel/.kde/etc/skel/.kde/Autostart/etc/skel/.kde/Autostart/Autorun.desktop/etc/skel/.kde/Autostart/.directory/etc/skel/.bash_logout/etc/skel/.bash_profile .. // ..

Ex:

Conditions to find files:• have names that contain certain text or match a given pattern• are links to specific files• were last used during a given period of time• are within a given range of size• are of a specified type (normal file, directory, symbolic link, etc.)• are owned by a certain user or group or have specified permissions.

Simplest way of using is to specify a list of directories for find to search. By default find prints the name of each file it finds.

Page 15: 101 3.3 perform basic file management

basic file management

find is usually used to search based on particular criteria:

find

15

Test Meaning Example

-name » find based on the file's name find /bin /usr/bin -name 'ch*‘

-iname » case insensitive file name find /etc -iname '*pass*‘

-ctime » find based on the time that the file was find /home -ctime +365-mtime created, or last modified, or last accessed find /var/log -mtime -l

-atime find /tmp -atime +30

-group » find based on the group or user of the file find /tmp -user `whoami` -user-uid find /tmp -uid `id -u`-gid

-perm » find based on the file permissions find /usr/bin -perm -4001(exactly, or +including, or all) find /etc -type f -perm +111

-size » find files of a particular size find / -size +5000k

-type » find files, director., pipes, sockets, links find /dev /var -type p

Page 16: 101 3.3 perform basic file management

basic file management

find -exec

find

16

foo:~ $ find /bin -perm -4001 -exec ls -lad {} \;

-rwsr-xr-x 1 root root 35302 Jun 23 2002 /bin/ping-rwsr-xr-x 1 root root 81996 Aug 30 2002 /bin/mount-rwsr-xr-x 1 root root 40700 Aug 30 2002 /bin/umount-rwsr-xr-x 1 root root 19132 Aug 29 2002 /bin/su

Ex:

When find finds a file, default action is to print out file's name.

•Alternative action that is quite useful is find –exec: •find executes the specified program, passing the file name to it. •find substitutes the name of the command in the place of the special characters {}. •The command must end with “;” which must be quoted so that it is not interpreted by the shell.

Page 17: 101 3.3 perform basic file management

Fim de sessão

17