文件与目录管理

来源:互联网 发布:微信h5微场景源码 编辑:程序博客网 时间:2024/05/12 05:59

一、目录与路径

1.相对路径与绝对路径

相对路径:意指相对于目前工作目录的路径,即路径的不是由“/”开头的。

绝对路径:由根目录(/)开始写起的文件名或者目录名称。

比较特殊的目录:

[. ] :表示当前目录

[..] :表示当前目录的上一层目录

[- ] :表示前一个工作目录

[~ ] :表示目录用户的主文件夹


二、目录的相关操作

1.切换目录(cd:change directory):

语法:cd [相对路径或者绝对路径]

 

进入files目录:

[root@hs-uf21 ~]# cd files

[root@hs-uf21 files]#

 

进入root用户的主文件夹:

[root@hs-uf21 files]# cd ~

[root@hs-uf21 ~]#

或者如下:

[root@hs-uf21 files]# cd

[root@hs-uf21 ~]#

 

进入前一个工作目录:

[root@hs-uf21 ~]# cd -

/root/files

[root@hs-uf21 files]#

 

2.显示目前所在目录(pwd:pringworking directory)

语法:pwd[-P]

参数:

    [-P]:显示当前路径,而非使用连接(link)路径

 

显示出当前路径:

[root@hs-uf21 files]# pwd

/root/files

 

3.创建新目录(mkdir)

语法:mkdir[-mp] dirname

参数:

    [-m]:创建目录时配置dirname的权限,而不使用默认权限

    [-p]:递归创建目录,可以连同子目录一起创建

 

在当前目录下创建目录test,并赋予全部用户读定执行的权限:

[root@hs-uf21 ~]# mkdir -m 777 test

[root@hs-uf21 ~]# ll

drwxrwxrwx  2root   root     4096 Apr 21 12:50 test

 

在当前目录下创建目录test1/test2/test3,使用-p参数递归创建

[root@hs-uf21 ~]# mkdir test1/test2/test3

mkdir: cannot create directory `test1/test2/test3': Nosuch file or directory

必需使用-p参数才可以:

[root@hs-uf21 ~]# mkdir -p test1/test2/test3

[root@hs-uf21 ~]#

 

4.删除目录(rmdir)

语法:rmdir [-p] dirmane

参数:

    [-p]:连同上一层的“空”目录也删除

 

在目录test下面创建文件test.txt,然后删除test目录,会提示test不为空,所以rmdir只能删除目录

[root@hs-uf21 test]# touch test.txt

[root@hs-uf21 test]# cd

[root@hs-uf21 ~]# rmdir test

rmdir: `test': Directory not empty

 

删除目录test1/test2/test3,使用-p参数可以一次性删除:

[root@hs-uf21 ~]# rmdir -p test1/test2/test3

[root@hs-uf21 ~]# ll

 

三、文件与目录管理

 

1.查看文件与目录(ls:list):

语法:ls [-aAdhlrRSt] dirname

       ls [--color={never,auto,always}] dirname

       ls [--time={atime,ctime}] filename ordirname

参数:

    [-a]:全部文件、包括隐藏文件一起列出来

    [-A]:全部文件、包括隐藏文件一起列出来,但不包括.和 ..这两众目录

    [-d]:仅列出目录本身,而不是列出目录内的文件数据

    [-h]:将文件容量以人类易读的方式(GB、MB、KB等)列出来

    [-l]:列出长数据串,包含文件的属性与权限等数据

    [-r]:将排序结果反向输出

    [-R]:连同子目录内容一起列出来,等于将该目录下所有文件都显示出来

    [-S]:以文件容量大小排序

    [-t]:以时间排序

   

    [--color=never]:不依据文件特性给予颜色显示

    [--color=auto]:让系统自行依据设置来判断是否给予颜色

    [--color=always]:显示颜色

   

    [--time=atime]:statustime文件状态改变时会更新的时间,如果权限、属性变更等

    [--time=ctime]:accesstime文件内容被取用时倒更新的时间,如使用cat、more等命令读取文件

    注意:ls默认显示modification time文件内容数据更改时会更新的时间

 

查看文件install.log的三类时间:

[root@hs-uf21 ~]# ll install.log

-rw-r--r--  1root root 59020 Apr 10 20:32 install.log

[root@hs-uf21 ~]# ll --time=ctime install.log

-rw-r--r--  1root root 59020 Apr 20 19:08 install.log

[root@hs-uf21 ~]# ll --time=atime install.log

-rw-r--r--  1root root 59020 Apr 19 21:15 install.log

 

2.复制(cp:copy):

语法:cp[fipru] srcfile destfile

       cp [fipru] src1 src2 src3 ... directory

参数:

    [-f]:为强制(force)的意思

    [-i]:若目标文件已经存在,在覆盖时会先询问操作的进行

    [-p]:连同文件的属性一起复制,而非使用默认属性;

    [-r]:递归持续复制,用于目录的复制行为

    [-u]:源文件srcfile比目录文件destfile新时才更新destfile。

 

将文件etc.tar和etc.tar.gz复制到files目录下:

[root@hs-uf21 ~]# cp etc.tar etc.tar.gz ./files

[root@hs-uf21 ~]# ls ./files

etc.tar etc.tar.gz

 

3.移除文件或者目录(rm):

语法:rm [-fir] file or directory

参数:

    [-f]:为强制(force)的意思,忽略不存在的文件,不会出现警告信息

    [-i]:互动模式,在删除前会询问用户是否操作

    [-r]:递归删除,常用于目录的删除。

 

使互动模式删除files目录及其下面的文件:

[root@hs-uf21 ~]# rm -ir files

rm: descend into directory `files'?

 

删除test目录,需要使用-r参数才可以:

[root@hs-uf21 ~]# rm test

rm: cannot remove directory `test': Is a directory

[root@hs-uf21 ~]# rm -r test

rm: descend into directory `test'? y

rm: remove regular empty file `test/test.txt'? y

rm: remove directory `test'? y

[root@hs-uf21 ~]# ll

 

4.移动文件与目录,或者更名(mv):

语法:mv [-fiu] source destination

       mv [-fiu] source1 source2 .... directory

参数:

    [-f]:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖

    [-i]:若目标文件已经存在时,会询问用户是否覆盖

    [-u]:右目标文件已经存在,且source比较新时才会更新(update)

 

将文件etc.tar etc.tar.gz移动到files目录:

[root@hs-uf21 ~]# mv etc.tar etc.tar.gz ./files

将目录files更名为file:

[root@hs-uf21 ~]# mv files file

 

注意:如果要移到多个资源文件,最后一个参数一定是目录。

 

5.创建新文件或者修改文件时间(touch):

语法:touch [-acdmt] filename

参数:

    [-a ]:仅修改访问时间

    [-c ]:修改文件状态变更的时间,如果文件不存在,不创建新的文件

    [-d ]:后面接欲修改的日期,而不用系统当前日期

    [-m ]:修改文件内容修改的时间

    [-t ]:后面接欲修改的时间,而不用系统当前时间,格式为[YYMMDDhhmm]

 

 

四、文件内容查阅

1.cat(concatenate)/tac(cat的反向列示)

语法:cat [-AbenTv] filename

参数:

    [-A]:相当于vET的整合参数

    [-b]:列出行号,仅针对非空白行做行号显示,空白行不标行号

    [-E]:将结尾的断行符$显示出来

    [-n]:打印出行号,连同空白行也打印出来

    [-T]:将[tab]按键^I显示出来

    [-v]:列出一些看不出来的特殊字符

 

2.more(一页一页翻动)

语法:more filename

说明:more运行过程的按键

    [空格键 ]:表示向下翻动一页

    [回车键 ]:表示向下滚动一行

    [/字符串]:表示向下查询“字符串”这个关键字

    [:f     ]:立刻显示出文件名以及目前显示的行数

    [q  ]:表示立刻离开More,不再显示该文件的内容

 

3.less(一页一页翻动)

语法:less filename

说明:less运行过程的按键

    [空格键 ]:表示向下翻动一页

    [PageDn ]:表示向下翻动一页

    [PageUp ]:表示向上翻动一页

    [/字符串]:表示向下查询“字符串”这个关键字

    [?字符串]:表示向上查询“字符串”这个关键字

    [n  ]:重复前一个查询

    [N  ]:反向重复前一个查询

    [q  ]:表示立刻离开less,不再显示该文件的内容

 

4.head(取出前面几行)

语法:head [-n number] filename

参数:

    [-n ]:后面接数字,表示显示几行的意思,默认为10

 

查看install.log文件的前2行数据:

[root@hs-uf21 ~]# head -n 2 install.log

Installing 1481 packages

 

5.tail(取出后面几行)

语法:tail[-fn number] filename

参数:

    [-f ]表示持续检测filename要等到按下[Ctrl]-c才会结束tail的检测

    [-n ]:后面接数字,表示显示几行的意思,默认为10

 

查看install.log文件的最后3行数据:

[root@hs-uf21 ~]# tail -n 3 install.log

kernel-hugemem-2.6.9-42.EL.i686.rpm

nptl-devel-2.3.4-2.25.i386.rpm

openssl-0.9.7a-43.10.i386.rpm

 

 

 


原创粉丝点击