您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第4章UNIX的文件和目录
第4章UNIX的文件和目录本章小节4.1文件和目的层次结构4.2文件和目录的命名4.3shell的文件名通配符4.4文件管理4.5目录管理4.6文件的归档与压缩处理4.7文件系统的存储结构第4章UNIX的文件和目录本章小节4.8硬连接与符号连接4.9系统调用4.10文件和目录的访问4.11获取文件的状态信息4.12设备文件4.13文件和目录的权限第4章UNIX的文件和目录4.1文件和目的层次结构4.2文件和目录的命名第4章UNIX的文件和目录文件和目录的层次结构文件和目录的布局UNIX系统通过目录管理文件,文件系统组织成树状结构,目录中可以含有多个文件,也可以含有子目录。路径名分割符用正斜线/,与系统有关的一些主要目录的取名和在层次结构中的位置,几乎在所有UNIX系统中都相同[表4-1]UNIX常见的目录和文件第4章UNIX的文件和目录文件和目录命名规则名字长度允许1-255字符早期UNIX不支持长文件名,长度为1-14取名的合法字符除斜线外的所有字符都是命名的合法字符不可打印字符也可以做文件名(除了字节0)斜线留做路径名分割符大小写字母有区别第4章UNIX的文件和目录4.3shell的文件名通配符第4章UNIX的文件和目录文件名通配符规则UNIX的文件名通配符由shell程序解释,不同的shell,文件名通配符规则虽不同,但下表中的规则却一致。[表4-2]常用的shell文件名通配符第4章UNIX的文件和目录shell文件名通配符的处理过程文件名通配符的处理由shell完成,分以下三步1.在shell提示符下,从键盘输入命令,被shell接受2.shell对所键入内容作若干加工处理,其中含有对文件通配符的展开工作(文件名生成),生成结果命令3.执行前面生成的结果命令【例4-1】体验shell对文件名通配符的展开处理第4章UNIX的文件和目录验证文件名匹配的结果在C语言中,从主函数main的两个参数,可以获得命令行参数的内容。intmain(intargc,char*argv[])参数argc:命令行参数的个数参数argv:指向数组的指针,argv[0]指向命令自身,argv[1]~argv[argc-1]指向shell解释过的命令参数。【例4-2】从程序员的角度理解shell对通配符的处理第4章UNIX的文件和目录4.4文件管理第4章UNIX的文件和目录文件名列表:ls命令基本功能1.不给出任何名字时,列出当前目录下所有文件和子目录2.名字为文件时,列出文件名3.名字为目录时,列出目录下的所有文件和子目录4.在同一命令行中可以指定多个名字ls命令:[简单实例]ls选项ls有几十个选项,控制每个文件的列表格式,以及列表的范围包括哪些文件,允许同时指定多个选项第4章UNIX的文件和目录ls的选项-a:列出所有(all)项。包括那些名字以句点打头的文件,默认情况下,名字以句点打头的文件不被列出-R:递归地列出碰到的子目录-F:标记(Flag)每个文件。目录后缀为/;可执行文件后缀为*;符号连接文件后缀为@;管道文件后缀为|;普通文件无任何标记-i:列出文件的i节点号-d:若实参是目录,则只列其名字(不列内容)-l:长格式(long)列表,给出文件的属性信息第4章UNIX的文件和目录文件的属性信息(1)$ls-l-rwxr-x--xlliangstud519Jul515:02arg第1列第1字符:文件类型-普通文件b块设备文件(Block)d目录文件(Dir)c字符设备文件(Char)l符号连接文件(Link)p命名管道文件(Pipe)第4章UNIX的文件和目录文件的属性信息(2)$ls-l-rwxr-x--xlliangstud519Jul515:02arg第1列第2~10字符:文件权限2-4字符:文件所有者对文件的访问权限5-7字符:同组用户对文件的访问权限8-10字符:其它用户对文件的访问权限rwx分别代表读权限,写权限,可执行权限,-表示无此权限第4章UNIX的文件和目录文件的属性信息(3)$ls-l-rwxr-x--xlliangstud519Jul515:02arg第2列:文件link数,涉及到此文件的目录项数,后述。第3列,第4列:文件属主的名字和属组名第5列:普通磁盘文件:列出文件大小(字节数)目录:列出目录表大小,不是目录下文件长度和符号连接文件:列出符号连接文件自身的长度字符设备和块设备文件:列出主设备号和次设备号管道文件:列出管道内的数据长度第4章UNIX的文件和目录文件的属性信息(4)$ls-l-rwxr-x--xlliangstud519Jul515:02arg第6列:文件最后一次被修改的日期和时间第7列:文件名对于符号连接文件,附带列出符号连接文件的内容第4章UNIX的文件和目录cp:拷贝文件命令的两种格式和功能cpfile1file2cpfile1file2...filendir其中file1,……,filen为文件名,dir为已有目录名例:cpa.ca.bakcpa.cb.cbackup.dir例:cp*.cbak.d与DOS命令COPY*.CBAK.D执行结果相同,但过程不同UNIX中实际执行cpa1.ca2.cb1.cb2.cbak.d第4章UNIX的文件和目录mv:移动文件格式1mvfile1file2mvfile1file2...filendirmvdir1dir2功能使用mv命令可以将文件和目录改名可以将文件和子目录从一个目录移动到另一个目录第4章UNIX的文件和目录rm:删除文件命令格式rmfile1file2...filen选项-r递归地(Recursive)删除实参表中的目录,也就是删除一整棵目录树。-i每删除一个文件前需要操作员确认(Inform)-f强迫删除(Force)。只读文件也被删除并且无提示其它问题正在运行的可执行程序文件不能被删除第4章UNIX的文件和目录显式地区分命令选项和处理对象问题设当前目录下只有a,b,c三个文件rm-i只提供选项,未指定任何文件,命令格式错who-i生成文件-i(符合文件的命名规则)rm-i不能删除文件-i解决方法许多UNIX命令(如cp,ls,mv,rm,cat,grep,set等)用--显式地标志命令行选项的结束,识别以-开头的处理对象。如:rm---i(删除文件-i)第4章UNIX的文件和目录find:在目录中查找文件命令格式find查找范围条件动作功能find命令从指定的查找范围开始,递归地查找子目录,对满足条件的文件或目录,执行规定的动作选项find命令的选项有许多条件选项和动作选项,因此命令功能很强第4章UNIX的文件和目录find命令的条件选项(1)1.-name指定要匹配的文件名可使用文件名通配符*、?和[],但要用引号括起来,以免被shell展开2.-type指定查找类型f:普通文件d:目录l:符号连接文件c:字符设备文件b:块设备文件p:管道文件3.-inum指定i节点号4.-links指定link数5.-depth指定路径深度第4章UNIX的文件和目录find命令的条件选项(2)7.-size±nc指定文件大小(单位是块或字节)数字后面带字母c表示单位为字节,不带任何符号则为块8.-mtime±ndays最近修改(写)时间(单位为天)9.-atime±ndays最近访问(读/执行)时间(单位为天)注意在选项7、8、9中,正号表示大于,负号表示小于,无符号表示等于。第4章UNIX的文件和目录find命令的条件选项(3)10.-perm指定文件的访问权限11.-user/-nouser指定文件主12.-group/-nogroup指定用户组复合条件可以用!、-o表示条件的非和或。多条件并列,默认为条件与。还可用()构成条件组合第4章UNIX的文件和目录find命令的动作选项-print显示查找的文件的路径名-exec命令及参数{}\;对查找到的目标执行某一命令在-exec及随后的分号之间的内容作为一条命令,{}代表所查到的路径名-ok与-exec类似,只是对查找到符合条件的目标执行一个命令前需要经过确认【例4-6】几个使用find命令的例子第4章UNIX的文件和目录4.5目录管理第4章UNIX的文件和目录路径名绝对路径名与相对路径名路径分量分隔符用斜线/,而不是反斜线\。绝对/相对路径名是以/不以斜线开头的路径名当前工作目录当前工作目录是进程属性的一部分,但没有当前逻辑盘的概念,相对路径名即以当前工作目录为参照的起点。第4章UNIX的文件和目录路径名文件.与..在目录表中确实有两个文件,这两个目录项由系统创建和删除,分别代表本目录及其父目录主目录(HomeDirectory)每个用户都有自己独立的主目录,并保存在环境变量HOME中第4章UNIX的文件和目录显示和改变当前目录pwd命令:显示当前工作目录cd命令:改变当前工作目录cd/usr/includecd/斜线前必须有空格cd..cd命令无实参在DOS中,打印当前工作目录在UNIX中,回到用户的主目录(HomeDirectory)第4章UNIX的文件和目录创建和删除目录创建目录mkdir例:mkdirsun/work.dmkdir除创建目录外,系统自动建立文件.与..删除目录rmdir例:rmdirsun/work.d要求被删除的目录除.与..外无其它文件或目录其他命令:rm-rsun/work.d第4章UNIX的文件和目录cp:复制目录cp命令选项-r,递归地复制一个目录cp-rdir1dir2若dir2不存在,则新建子目录,并将dir1下内容拷入若dir2已存在,则将所有文件拷入目录dir2选项-v,冗长(verbose)方式复制时列出所拷贝的文件名选项-u,增量拷贝(update),便于备份目录根据文件的时戳,不拷贝相同的或者过时的版本的文件,以提高速度dir1和dir2不慎颠倒位置,不会出现灾难性后果第4章UNIX的文件和目录cp:复制目录(举例)复制目录将目录work.d复制为bak.dcp-rwork.dbak.d增量拷贝将work.d中的内容增量拷贝到备份目录bak.d中cp-ruvwork.dbak.d命令touch将文件的最后一次修改时间设置为当前时间,但不修改文件内容。例如:touch*.[ch]第4章UNIX的文件和目录4.6文件的归档与压缩处理第4章UNIX的文件和目录tar:文件归档功能tar命令最早为顺序访问的磁带机设备而设计的(TapeARchive,磁带归档),用于保留和恢复磁带上的文件命令格式及选项tar[ctxu][v][fdevice]file-listc:Create创建新磁带。从磁带的头上开始写,以前存于磁带上的数据会被覆盖掉t:Table列表。磁带上的文件名列表,当不指定文件名时,将列出所有的文件第4章UNIX的文件和目录tar:文件归档x:eXtract抽取。从磁带中抽取指定的文件。当不指定文件名时,抽取所有文件。如果磁带上有多个同名文件时,最后一个文件将覆盖所有较早同名文件u:Update更新。把文件追加到磁带尾部,这个文件的某个版本可能已经存放到磁带上。为了兼顾磁带顺序访问特点,新版本文件追加到文件尾部,旧版本文件仍保留v:Verbose冗长。tar每处理一个文件,就打印出文件的文件名,并在该名前冠以功能字母f:File指定设备文件名第4章UNIX的文件和目录文件压缩和解压缩命令compress和uncompress采用LZW算法对文件压缩,是一种字典压缩算法压缩算法对文件中有规律的数据内容压缩效率很高普通文本文件可压掉50-80%有许多空白字段的数据库文件甚至可压掉90%以上压
本文标题:第4章UNIX的文件和目录
链接地址:https://www.777doc.com/doc-3967111 .html