首页计算机计算机软件Unix&Linux教程 24 第24章 文件操作.pptx

24 第24章 文件操作.pptx

页数:68页文件大小:150.7 KB来源: Unix&Linux教程ppt课件

本课件讲解文件操作:touch创建文件、文件命名规则、cp复制与目录复制、mv移动与重命名、rm删除与防止误删、文件权限与模式、chmod修改权限、umask、inode与链接、ln与符号链接,以及文件查找。

第24章文件操作封面,标示本章讲解的文件创建复制删除、权限与链接
本章需要解决的几个问题要点讲解,涵盖如何创建、有哪些文件权限、什么是文件链接等
25.1创建文件:touch要点讲解,涵盖touch的主要功能、touch的副作用等
查看本课件的文字版(共 68 页,供检索与复制)

第1页:第24章文件操作

本页为第24章文件操作的章节封面,标示本章讲解的文件创建复制删除、权限与链接。

第2页:本章需要解决的几个问题

  • 如何创建、复制、移动和重命名普通文件?
  • 有哪些文件权限?
  • 什么是文件链接?
  • 如何搜索文件?

第3页:25.1创建文件:touch

touch的主要功能
将文件的修改时间和访问时间设置为当前时间
touch的副作用
当修改的文件不存在时,创建该文件

第4页:25.1创建文件:touch:语法定义

  • 语法定义:touch[-acm] [-ttime]file…其中:-a:改变文件访问时间-m:改变文件修改时间-c:不希望创建新文件time:使用time作为设置的日期和时间

第5页:创建文件:touch

  • 5种创建新文件的方法:-vinewfile-重定向标准输出,>newfile-cpoldfile newfile-catnewfile-touchnewfile

第6页:25.2命名文件

  • Unix文件命名标准:1文件名最长255个字符2文件名可以包含除/和null外的任何字符-/是路径分隔符-null在C/C++语言中,作为字符串的结束符3创建对自己有意义的文件名4建议命名目录和文件时,使用小写字母。只有特别重要时,使用全大写的名称

第7页:25.2命名文件:可以在文件名中安全使

可以在文件名中安全使用的字符
含义字符小写字母a、b、c……大写字母A、B、C……数字0、1、2……点.连字符-下划线_

第8页:25.3复制文件:cp

  • 语法定义:cp[-ip]file1file2…其中:-i:交互式复制-p:目标文件和源文件具有相同的修改时间、访问时间和权限file1:已有文件file2:目标文件

第9页:25.3复制文件:cp示例

25.3复制文件:cp命令示例:

$ cp /etc/passwd ~/pword$ cp-i data extracp: overite extra (yes/no)?yes$ cp-p data extra$ ls-l data (查看修改时间)$ ls-lu data (查看访问时间)$ ls-l extra$ ls-lu extra

第10页:25.4将文件复制到不同的目录中:cp

语法定义
cp[-ip]file…directory其中:file:已有文件directory:已有目录的名称

第11页:将文件复制到不同的目录中:cp示例

25.4将文件复制到不同的目录中:cp命令示例:

$ cp data\home\harley\backups$ cp ../../bin/adventure .$ cp documents/* backups$ cp-r documents backups

第12页:25.5将目录复制到其它的目录中:cp

  • 语法定义:cp-r[-ip]directory1…directory2其中:directory1:已有目录的名称directory2:目标目录的名称

第13页:25.6移动文件:move

  • 语法定义:move[-if]file…directory其中:file:已有文件的名称directory:目标目录的名称-i:交互式操作-f:强制替换目标文件,忽略-i和文件权限的限制(在没有写权限的情况下复制)

第14页:25.7重命名文件或目录:move

  • 语法定义:move[-if]oldname newname例子:设old、new都是目录名$ move old new执行效果1.如果new不存在,old重命名为new2.如果new存在,old成为new的子目录

第15页:25.8删除文件:rm

  • 语法定义:rm[-fir]file…例子:$ rm data$ rm data[123]$ rm *(考虑:会删除所有文件吗?)

第16页:25.9如何防止误删文件:rm-if

  • 防止误删方法1:-删除前,先用ls检查一下删除的目标,确认无误后,执行删除操作-为了简化这个过程,可以定义别名:delalias del=‘fc-s ls=rm’例子:$ ls data.[beo]*$ del

第17页:如何防止误删文件:rm-if

防止误删方法2
-使用-i选项,进行交互式操作。rm程序将为每个文件显示一条询问消息,确认后,才会删除。

第18页:25.10删除整个目录树:rm-r

交互式删除
rm-ri extra
平静式删除
rm-rf extra

第19页:删除整个目录树:rm-r

一个容易出现的错误
$ rm-rf ~/extra$ rm-rf ~ /extra

第20页:25.12文件权限

  • 3种权限:-读权限(read permission)-写权限(write permission)-执行权限(execute permission)

第21页:25.12文件权限:为自己文件设置权限的

为自己文件设置权限的理由
-限制其他用户的访问-避免自己错误使用

第22页:25.12文件权限:目录的权限

目录的权限
读取目录内容读创建、移动、复制或删除目录写搜索目录(如:执行ls等)执行

第23页:25.12文件权限:文件权限如何控制其它

  • 文件权限如何控制其它用户标识的访问?每个文件权限都针对三类用户:1.文件创建者2.文件创建者所在的组3.其他用户每类用户的权限由3部分组成:读权限、写权限、执行权限

第24页:25.13 setuid

  • setuid是什么?是一种文件权限,允许其他用户拥有和文件创建者的一样权限。
  • 为什么需要setuid?因为某些情况下,普通用户需要特殊的权限运行程序。

第25页:25.13 setuid

  • 例子:使用passwd命令修改口令。该命令需要修改口令文件和影子文件,但修改这两个文件需要root权限。-rw-r--r--1 root root 1787 Oct 27 2012 /etc/passwd-r--------1 root root 1187 Oct 27 2012 /etc/shadow
  • 其实,用户能更改密码真正的秘密不在于文件的权限,而在于更改密码的命令passwd-rwsr-xr-x 1 root root 22960 Oct 27 2012 /usr/bin/passwd

第26页:setuid:s标示一类特殊的权限

  • s标示一类特殊的权限setuid,可以这样来理解它:当一个具有执行权限的文件设置setuid权限后,用户执行这个文件时将以文件所有者的身份执行。
  • passwd命令所有者为root(Linux中的命令默认所有者都是root),具有setuid权限。也就是说当普通用户使用passwd更改自己密码的时候,实际是以passwd命令所有者root的身份在执行。

第27页:25.14 Unix维护文件权限的方式

  • 使用用户组维护文件权限
  • 每个userid都属于一个组,在创建userid时,就分配了组。-组中除了文件创建者,其他成员的权限都一样
  • 每个组都有一个groupid,存放在/etc/group文件中
  • 组的名称存放在/etc/passwd文件中

第28页:Unix维护文件权限的方式:显示用户标识

  • 显示用户标识和组标识的命令$ iduid=500(harley) gid=500(staff)groups=500(staff), 502(admin)
  • 显示组信息的命令groups[userid…]

第29页:25.15显示文件权限:ls-l

  • ls-l执行结果:total 109-rwxrwxrwx 1 harley staff 8672 Sep 5 16:27 program.allusersdrwxrwx---1 harley staff 4096 Sep 5 16:27 music……其中:r读权限w写权限x执行权限-没有权限权限字段

第30页:显示文件权限:ls-l:权限字段的含义

  • 权限字段的含义:Flag Owner Group Other File-rwx rwx rwx program.allusersd rwx rwx---music

第31页:25.16文件模式

  • 文件模式的含义:-使用一个3位数字的代码来表示一个完整的文件权限集,该代码被称为文件模式。例如可以说:文件text.owner的模式是600文件spacewar的模式是755

第32页:25.16文件模式:文件模式中各种权限对

文件模式中各种权限对应的数值
4 =读权限2 =写权限1 =执行权限0 =没有权限

第33页:25.17改变文件权限

语法定义
chmodmode file…其中:mode:文件模式file:文件或目录名

第34页:25.17改变文件权限

  • 例子1:更改文件spacewar权限,给予文件属于读、写、执行权限,组和其他人读和执行权限。1.计算各类用户权限:属主:4+2+1=7组:4+0+1=5其他人:4+0+1=52.修改权限:chmod 755 spacewar

第35页:25.17改变文件权限

  • 例子2:对于shell脚本,在创建时,属主默认拥有读和写权限。为了执行脚本,必须为属主添加执行权限。chmod 700shell_script

第36页:Unix给新文件指定权限的方式

  • 创建文件时,默认的权限由两部分组成:1.初始权限2.用户掩码

第37页:Unix给新文件指定权限的方式

  • 创建文件时,默认的权限由两部分组成:1.初始权限666:不可执行的普通文件777:可执行的普通文件777:目录2.用户掩码

第38页:Unix给新文件指定权限的方式

  • 创建文件时,默认的权限由两部分组成:1.初始权限2.用户掩码使用umask命令设置umask[mode]

第39页:Unix给新文件指定权限的方式

  • 默认权限的计算:默认权限=初始权限▬用户掩码例如,对于可执行文件a,设置用户掩码为077,则该文件的默认权限为:777▬077 = 700

第40页:25.19清空文件内容

清空的目的
-测试粉碎文件,销毁文件中的数据
清空的方式
-用无效的数据,多次覆盖原有数据

第41页:25.19清空文件内容:清空的命令

  • 清空的命令:shred-fvuz[file…]其中:-f:忽略文件权限的限制-v:显示处理过程中的消息-u:在清空文件内容之后,删除文件-z:在清空文件内容之后,将文件内容全部填充为0

第42页:25.20链接的概念

  • Unix怎么处理文件创建1.在存储设备上保留一块空间用于存储数据;2.创建一个索引节点,或称i-节点,来存放文件的基本信息。

第43页:25.20链接的概念示意图

本页为课件示意图,配合图形说明25.20链接的概念小节的结构与流程。

第44页:25.20链接的概念:文件长度

  • 文件长度
  • 包含文件的设备名称
  • 属主的用户标识
  • 组id
  • 文件权限
  • 上一次修改时间
  • 上一次访问时间
  • inode上一次修改时间
  • 指向该文件的链接数
  • 文件的类型(普通、目录、特殊、符号链接……)
  • 分配给该文件的块数inode内容

第45页:链接的概念:查看inode相关信

  • 查看inode相关信息的命令1.查看文件inode的内容statfilename2.查看文件inode号(i-number)ls-s[filename…]

第46页:25.20链接的概念:链接的概念-文件名

  • 链接的概念-文件名和inode之间的连接称为链接。

第47页:25.20链接的概念

  • 例子:在bin目录中创建文件spacewar,会发生什么情况?1.为根据spacewar内容,为其分配空间。2.在inode表中找一个空闲inode,假设为:inode: #478515,将文件信息填入到该节点中。3.在bin目录放入一个条目,包括inode号和文件名称spacewar。

第48页:25.21多重链接

  • 25. 21多重链接
  • 多重链接的含义:同一个inode,指向多个不同名称的文件。

第49页:25.22创建新链接:ln

为单个文件创建新链接
lnfile newname其中:file:文件名newname:新链接的名称

第50页:创建新链接:ln:为多个文件创建新链接

为多个文件创建新链接
lnfile… directory其中:file:文件名directory:存放新链接的目录

第51页:25.23基本文件命令的工作方式

  • 创建文件、创建目录(mkdir):为文件/目录分配空间;创建inode;创建目录条目。(其实,目录也是文件,文件内容为:inode号文件名)

第52页:基本文件命令的工作方式:复制文件

  • 复制文件(cp):情况1:目标文件已存在替换目标文件数据,修改目标文件的inode内容情况2:目标文件不存在分配空间,复制数据;创建inode;创建新的目录条目

第53页:基本文件命令的工作方式:移动文件

移动文件(mv)
改变目录条目中的文件名;移动目录条目。

第54页:基本文件命令的工作方式:创建链接

创建链接(ln)
创建新的目录条目。

第55页:基本文件命令的工作方式:移除文件

移除文件(rm)
移除对应目录条目;如果文件已无链接,则删除该文件。

第56页:25.24符号链接(软链接)

链接的限制
1.无法创建目录的链接;2.不能为不同文件系统的文件创建链接。如果要突破这两个限制,需要使用符号链接。

第57页:符号链接(软链接):什么是符号链接

什么是符号链接
符号链接类似于链接,只是把文件对应的目录条目中inode号替换为文件的路径名。
怎么创建符号链接
$ ls-s /bin/sh /bin/bash

第58页:符号链接(软链接):怎么查看符号链接

  • 怎么查看符号链接:$ ls-l /bin/shlrwxrwxrwx 1 root root 4 Sep 11 2012/bin/sh-> bash

第59页:符号链接(软链接):硬链接与软件链接

  • 硬链接与软件链接
  • 将常规的链接称为硬链接
  • 将符号链接称为软链接

第60页:25.25目录使用符号链接

  • 当cd和pwd的对象是符号链接时,怎么处理-方式1:使用-L选项,将符号链接视为真实的目录;-方式2:使用-P选项,用真实目录替换符号链接。这种方式称为shell遵循符号链接。

第61页:25.25目录使用符号链接示意图

本页为课件示意图,配合图形说明25.25目录使用符号链接小节的结构与流程。

第62页:25.26查找与Unix命令相关的文件

  • 命令:whereiswhereis[-bms]command…其中:-b:只查找可执行文件-m:只查找帮助文件-s:只查找源文件

第63页:查找与Unix命令相关的文件

  • 搜索目标-不搜索全部文件,只在可能的目录中搜索。例如:在/bin /sbin /usr/bin /usr/sbin /etc等目录中搜索可执行文件在/usr/share/man中搜索帮助文件在/usr/src中搜索源代码

第64页:25.27通过搜索数据库查看文件

  • 命令:locatelocate[-bcirS]pattern…其中:-b:只需要匹配文件名-c:只统计匹配的个数-i:忽略大小写-r:可以使用正则表达式-S:显示locate数据库的信息

第65页:通过搜索数据库查看文件

  • 搜索目标-locate数据库例子:$ locate-r ‘.jpg$’ > photos$ locate-ibr ‘.jpg$’ > photos

第66页:25.28通过搜索目录树查找文件

  • 命令:findfindpath… test… action…其中:path:要搜索的路径名test:搜索条件action:对搜索结果的处理

第67页:通过搜索目录树查找文件

  • Find的处理步骤1.遍历path下的目录树2.对遇到的每个文件,进行条件测试3.遍历结束后,对满足测试条件的节点执行action操作

第68页:25.28通过搜索目录树查找文件

例子
$find /home/harley–name important-printpathtestaction
顶部目录