You are on page 1of 33

Linux 操作 系统

目录和 文件

周炯
上海艾基信 息技术有限 公司

Acegene IT Co. Ltd. 1


Linux—— 文件与 目录操作
• 1 操作文件与子目录
• 2 搜索文件
• 3 压缩与解压缩文件

Acegene IT Co. Ltd. 2


1 操作文 件与子目 录
• 使用 Linux 操作系统在硬盘驱动器上对文件和子
目录进行拷贝、删除或者移动,以便更好地组织
信息。
– 1.1 touch 命令
– 1.2 rm 命令
– 1.3 mkdir 命令
– 1.4 rmdir 命令
– 1.5 mv 命令
– 1.6 cp 命令
– 1.7 ln 命令
– 1.8 Midnight Command (MC)

Acegene IT Co. Ltd. 3


1.2 rm 命令
• 使用 rm 命令删除文件
– # rm -fr /*
• rm 命令可以从命令行上一次删除一个或者
几个文件。
– # rm file1 file2 file3
– # rm -i new*
– # rm -f new*

Acegene IT Co. Ltd. 4


1.1 touch
• 使用 touch 命令建立文件
– 建立文件
– 更新文件的修改日期
• 建立文件的命令:
# > newfile2
# ls -l new*

# touch newfile2
# ls -l newfile2
# touch -t 1225130000 newfile2
• touch 命令可以在 行 份操作的 程中更新 些文件的
时间记录,这样备份程序在进行下一次备份工作的时候就
有了一个可供参考的时间

Acegene IT Co. Ltd. 5


1.3 mkdir 命令
• mkdir 命令一次可以建立一个或者几个子目录。
• mkdir -p 命令还可以只使用一个命令行一次就建
立起包括全部的父目录和子目录在内的一个完整
的子目录继承结构。
– # mkdir temp
– # mkdir temp2 temp3 temp4
– # mkdir temp/child
– # mkdir -p temp5/parent/child

» # tree temp5

Acegene IT Co. Ltd. 6


1.4 rmdir 命令
• rmdir 命令是用来删除子目录的
– # rmdir tempdirectory
• 但是要注意:这个子目录必须是空的。
– # rmdir -p temp5
– # rmdir -p temp5/parent/child
– # mkdir -p temp5/parent/child2
– # rmdir -p temp5/parent/*

Acegene IT Co. Ltd. 7


1.5 mv 命令
• 使用 mv 命令给文件改名或者用来在文件
系统内移动文件或者子目录。
–# touch file1
–# mv file1 file2
–# mkdir -p temp/temp2/temp3
–# mv temp newtemp
• mv 命令有很多参数,但是我们只讨论其中
最常用的两个, -b( 备份 ) 和 -i( 交互操作
)

Acegene IT Co. Ltd. 8


1.5 mv 命令
• #touch uno deux tree
• #mv uno deux
• #mv –b uno deux
• #mv –i uno deux

Acegene IT Co. Ltd. 9


1.6 cp 命令
• cp 命令,即拷贝命令,是用来对文件或者子目录进行拷
贝操作的。这个命令有将近 40 个命令行参数。
– # cp file1 file2
– # cat > file1
• this is file1
– # cat > file2
• this is file2
– # cat > file3
• this is the third file
– # ls -l file*ls
– # cp -i file1 file2
– #cp tempdir1/* tempdir2
– #cp -r tempdir1 tempdir2
• 最后, cp 命令还有一个 -p 参数,它的作用类似于 mkdir
命令中的 -p 参数。
Acegene IT Co. Ltd. 10
1.7 ln 命令 : 建立硬 链接和符 号链接
• ln 命令:可以建立 形式的 接并把文件与其他的文件
链接在一起。
– 硬链接 : 直接链接两个同时保存在相同的文件系统上的文件。
• 删除了文件 file1 ,文件 file2 依然存在。修改了文件 file1 ,修改都
会反映到文件 file2 中;修改了文件 file2 ,文件 file1 也会随之更新

• 虽然有两个文件,但是在硬盘驱动器上只有原始文件占用的空间。
– 符号链接 ln -s : 用来在扩展到不同的文件系统上的子目录或者
文件之间建立链接。
• 符号链接和硬链接的区别是符号链接只不过是指向原始文件的一个
alias (假名)而已。
• 如果删除了符号链接,原始文件不会发生任何变化。而一旦删除了原
始文件,符号链接也会依然存在。
#cat > file1
This is file1.
#ln file1 file2
#ls -l file*
#cat file2

Acegene IT Co. Ltd. 11


1.8 Midnight Commander
• mc 程序的全称是 Midnight Commander
它是一个对文件进行管理的图形化界面。
相当于一个可视化的 shell 。如果想运行
mc 命令,请在命令行上键入下面的内容:
# mc
• 它的一些主要特点:
• 提供了同时对两个子目录的可视化接口
• 允许使用鼠标操作对子目录中的文件进行
浏览

Acegene IT Co. Ltd. 12


2 搜索文 件
• 介绍复杂的通配符、即规则表达式的使用
方法以及一些使用 grep 类的程序进行文件
搜索的小例子。
– 规则表达式
– grep: 在文件内进行搜索

Acegene IT Co. Ltd. 13


2.1 什么 是规则表达 式
• 规则表达式又称为正则表达式
• 规则表达式:是使用特殊的语法对字符串
( 除非是在对文件名进行搜索,字符串一般
都在文件的文本之中 ) 进行匹配的字符串格
式。
• 详细资料可以通过 man ed 获取

Acegene IT Co. Ltd. 14


2.1 常用 规则表达式
表达式 匹配
* 任意字符
? 或者 . 一个字符
{x} 前导字符 x 个
{x,y} 前导字符至少 x 个,但是不超过 y 个
{x,} 前导字符至少 x 个
(xxx)||(XXX) 字符串 xxx 或者 XXX
[xxx] 或者 [x-x] 在方括号中的字符范围内中的某
个字符
[XYZ]+ X 、 Y\Z 至少一次
\x ? 或 \ 等特殊符号字符
^pattern 一行开头的字符排列形式
$pattern 一行结尾的字符排列形式
Acegene IT Co. Ltd. 15
2.1 常用 规则表达式
• #ls *.txt
• #ls *1* *2* *3* *4* *5* *6* *7* *8* *9* (注
意:有重复)
• #ls *[0123456789]*
• #ls *[0-9]* ( #ls *[0-9] 、 #ls [0-9]* )
• #ls *[a-z]*[0-9]*
• #ls *\?*

Acegene IT Co. Ltd. 16


2.2 grep: 在文件内进 行搜索
• grep 命令家族包括: grep 、 egrep 、和
fgrep 等命令。
• 需要使用这几个命令可以在文件中进行查
找并抽出文本。这几中个程序命令的每一
个都会查找文件的每一行。可以搜索一个
文件或者一组文件。
• #(e)grep ^[0-9] guide.txt
• #fgrep friends guide.txt

Acegene IT Co. Ltd. 17


2.2 grep: 在文件内进 行搜索
• 使用 egrep 命令在文件中查找所有包含字符串 (b) 的行

– #egrep "\([b]\)" guide.txt
• (see section 1 for a list of compatible boards ), or
(b) there is an
• connect to the network , or (b) you have a "
dynamic " IP address,
– # grep "\([b]\)" guide.txt
• This is version 2.2.2 of the book , " Linux
Installation and Getting to PostScript printers .
• This document was generated by a set of This is
not the " o fficial " version of the book ! Please
see
– #grep "(b)" guide.txt

Acegene IT Co. Ltd. 18


2.2 grep: 在文件内进 行搜索
• 每个 grep 命令程序都能够接受几乎相同的
命令行参数。其中常用的一个是 -n ,即显
示行号参数。
– #egrep -n "friend" guide.txt
1242 : large extent by the window manager .
This friendly program is
1942 : copy Linux from a friend who may
already have the software , or
5161 : ( Unfortunately , the system was being
unfriendly .)

Acegene IT Co. Ltd. 19


2.2 grep: 在文件内进 行搜索
• -f 参数
• #cat > mykeywords
beautiful
mind
dvd
• #grep –nf mykeywords guide.txt
• 可以使用 grep 命令的 -F 参数使它能 模仿 fgrep
命令的执行情况;
• 或者使用 -E 参数模仿 egrep 命令的执行情况。
• 还可以在系统上找到一个独特的 grep 命令家族
成员, zgrep 命令,可以使用它来搜索压缩文件

Acegene IT Co. Ltd. 20
3 压缩与 解压缩文 件
介绍对文件进行归档和压缩操作的基本知识
• 3.1 用 tar 磁带文件归档命令建立档案文

• 3.2 建立 cpio 档案文件
• 3.3 使用 gzip 命令压缩文件
• 3.4 使用 compress 命令压缩文件

Acegene IT Co. Ltd. 21


3.1 tar: 建立档 案文件
• tar (tape archive) 磁带文件归档命令程
序出现在还没有软盘驱动器、硬盘和光盘
驱动器的计算机早期阶段。
• 使用 tar 命令可以生成一个包含有多个子目
录和多个文件的档案文件。
• 在系统上安装的 tar 命令版本还支持一个 -
z 参数,这样就可以使用 gzip 程序来压缩
文档。

Acegene IT Co. Ltd. 22


3.1 tar: 建立档 案文件
• #mkdir mydir
• #cd mydir
• #touch file1 file2 file3
• #mkdir mydir2
• #touch file21 file22 file23
• #cd ../..
• #tree mydir

Acegene IT Co. Ltd. 23


3.1 tar: 建立档 案文件
• tar 命令参数 :
– c( 生成 )
– f( 文件 )
– v(verbose)
– w( 提问 )
– t( 测试 )
– x( 展开 )
# tar c(v)f mydir.tar mydir
• 需要注意的是,如果参数的顺序放错了, tar 命
令会显示出错信息并退出
– # tar x(v)f(w) mydir.tar mydir
– # tar zc(v)f mydir.tar.gz mydir
• 如果只想从档案文件中释放某一个文件,可以在
命令行中指定这个文件。
– # tar xf mydir.tar mydir/mydir2/file23
Acegene IT Co. Ltd. 24
5.3.2 建立 cpio 档案文 件
• cpio 命令可以从 tar 或者 cpio 档案文件中
拷入或者拷出文件。 cpio 命令和 tar 命令
兼容。这个命令具备一些 tar 命令没有的功

• 如下所示:
– 支持 cpio 和 tar 两种档案文件格式
– 支持许多老式磁带数据格式
– 能够通过一个管道读取文件的文件名
cpio -idvm < *.cpio

Acegene IT Co. Ltd. 25


3.3 使用 gzip 命令压 缩文件
• gzip 命令是用来压缩文件的。这个程序不
仅可以用来压缩大的较少使用的文件以节
省磁盘空间,
• 还可以和 tar 命令一起构成可能是 Linux
操作系统中最流行的压缩文件格式。
• 在因特网上寻找新的 Linux 软件时,经常
会遇到 .tgz 或 .tar.gz 格式的文件。
• gzip 命令对文本文件有 60% ~ 70% 的压
缩率。

Acegene IT Co. Ltd. 26


3.3 使用 gzip 命令压 缩文件
– #gzip mydir.tar
• 缺省的状态下, gzip 命令会压缩文件、再加上一
个 .gz 扩展名、然后删除掉原来的文件
• gzip 命令的对应程序命令 gunzip 或者 gzip
• 必须保证这个用于解压缩的文件有 .gz( 或者 .
Z、
-gz 、 .z 、 -z 、或者 _z) 扩展名,否则 gzip 命
令和 gunzip 命令都会显示出错信息。
• 如果想使用自己的扩展名,可以使用 -S 后缀参数
,如下所示:
– #gzip -S .gzipped mydir.tar

Acegene IT Co. Ltd. 27


3.3 使用 gzip 命令压 缩文件
• gzip 命令还可以处理用 zip 命令、
compress 命令和 pack 命令压缩的文件包。
如果想在压缩或者解压缩的过程中看到更
多的信息,
– 可以使用 -l 列清单参数看到文件在被压缩或解
压缩的时候的文件长度
– #gzip -l mydir.tar.gz
• gzip 命令还有一个很有用的参数 -t ,可以
用来测试压缩的完整性,如果文件正常,
gzip 命令不会给出任何显示文件。
– 如果想看到 OK 这两个字母,可以在测试某个
文件时使用 -tv 。
Acegene IT Co. Ltd. 28
3.4 使用 compress 命令压缩 文件
• compress 命令就象它的文件名那样,就是用来
压缩文件的。这是 UNIX 世界中出现得比较早的
一个压缩程序。
• 使用 compress 命令生成的文件传统上都有一个
.Z 扩展名。如果想压缩某个文件,请输入下面的
内容:
– # compress file
• 如果想解压缩某个文件,请输入下面的内容:
– # uncompress file.Z
• 像使用 gzip 命令的时候一样,必须给出一个带有
.Z ,扩展名的文件名否则 compress 命令显示出
错信息。
Acegene IT Co. Ltd. 29
其他的 压缩命令
• bzip2 、 zip 、
unzip 、 zipcloak 、 zipnote 、 zipsplit
、 zless 、 zcat 、 znew 、 zmore 、 zc
mp 、 pack 、 compact 、 shar 、 unsh
ar 或者 zforce 程序命令。
• 其他相关命令: uudecode, uuencode,
strings

Acegene IT Co. Ltd. 30


其他命 令
• du, df 文件系统使用空间
• sync, ps, top, uname, 进程管理
• who, su 用户身份

Acegene IT Co. Ltd. 31


Q&
A
QUESTIONS
ANSWERS
练习
• 文件和目录
– 查看目录内容 ls ll dir
– 建立目录 mkdir
– 新建文件 touch
– 复制文件 cp
– 移动文件 mv
– 删除文件和目录 rm rmdir
– 浏览文件 grep
• 压缩文件
– tar 磁带文件归档命令建立档案文件
– cpio 命档案文件
– gzip 令压缩文件
– Compress
• 建立 接
– ln -s /sbin/fuser /bin/fuser
Acegene IT Co. Ltd. 33

You might also like