鸟哥的linux私房菜学习笔记《六》文件与目录管理

  1. 目录的相关操作
    . 代表此层目录
    .. 代表上一层目录
    ~ 代表『目前用户身份』所在目录
    ~account 代表 account 这个用户的家目录(account是个账号名称)
  2. cd是Change Directory的缩写,这是用来切换工作目录的指令。
    而家目录还有一个代码,那就是『 ~ 』符号! 例如上面的例子可以发现,使用『 cd ~ 』可以回到个人癿家目录里头去。另外,针对 cd的使用方法,如果仅输入 cd 时,代表的就是『 cd ~ 』的意思。
  3. pwd是Print Working Directory的缩写,也就是显示目前所在目录的指令。
    pwd -P:显示出当前的路径,而非使用链接路径

    [root@CentOS mail]# pwd
    /var/mail    <==列出目前的工作目录
    [root@CentOS mail]# pwd -P
    /var/spool/mail  <==显示出当前的路径,而非使用链接路径
    [root@CentOS mail]# 
    

    其实有趣的是那个 -P 的选项啦!他可以让我们取得正确的目录名称,而不是以链接文件得路径来显示。

  4. mkdir :新建新目录
    参数:
    -m:配置文件的权限。直接设置,不需要看umask
    -p:帮助你直接将所需要的目录(包含上层目录)递归建立起来。

    [root@CentOS kevin]# mkdir -p test1/test2/test3/test4
    
    # 加了-p参数,可以自行建立多层目录
    
    [root@CentOS kevin]# mkdir -m 711 test2
    [root@CentOS kevin]# mkdir test3
    [root@CentOS kevin]# ll
    drwx--x--x. 2 root  root  4096 Mar  3 20:15 test2
    drwxr-xr-x. 2 root  root  4096 Mar  3 20:18 test3
    
    # 上述,如果没有加-m选项来强制设置属性,系统会使用默认属性 
    
  5. rmdir:删除空目录
    -p:连同上层空的目录也一起删除

    [root@CentOS kevin]# rmdir -p test1/test2/test3/test4/
    
    # 此时删除的test4,但是一直到test1也都会被删除
    

    被删除的目录里必定不能存在其他的目录或文件。
    如果要将所有目录下的东西都删除,可以使用”rm -r test1”

    [root@CentOS kevin]# rm -r test1/
    rm: descend into directory `test1'? y
    rm: descend into directory `test1/test2'? y
    rm: descend into directory `test1/test2/test3'? y
    rm: remove directory `test1/test2/test3/test4'? y
    rm: remove directory `test1/test2/test3'? y
    rm: remove directory `test1/test2'? y
    rm: remove directory `test1'? y
    [root@CentOS kevin]# 
    
  6. ls:查看文件与目录
    参数:
    -a : 全部文件,连同隐藏文件一起列出
    -A:列出全部文件,但不包括.和..这两个目录
    -d:仅列出目录本身,而不列出目录内的数据
    -l:以长格式列出
    -F:显示出文件或者目录的数据结构
    *:可执行文件,/:目录,=:socket文件,|:FIFO文件
    –color=nerver:不要依据文件特性给于颜色
    –color=always:显示颜色
    –color=auto:让系统自行依据设置来判断是否给于颜色显示
    –full-time:以完整的时间模式显示
    –time=(atime,ctime):输出atime或者ctime,而不是mtime。
    将主目录下所有文件以长格式无颜色显示其目录结构

    [root@CentOS kevin]# rm -r test1/
    rm: descend into directory `test1'? y
    rm: descend into directory `test1/test2'? y
    rm: descend into directory `test1/test2/test3'? y
    rm: remove directory `test1/test2/test3/test4'? y
    rm: remove directory `test1/test2/test3'? y
    rm: remove directory `test1/test2'? y
    rm: remove directory `test1'? y
    [root@CentOS kevin]# 
    

    以长格式显示主目录下所有文件的修改时间

    [root@CentOS kevin]# ls -al --full-time ~
    total 176
    dr-xr-x---.  7 root root  4096 2017-03-03 20:11:41.296177791 -0500 .
    dr-xr-xr-x. 25 root root  4096 2017-03-02 05:26:55.922963158 -0500 ..
    -rw-------.  1 root root  3235 2017-03-01 16:47:33.323999597 -0500 anaconda-ks.cfg
    -rw-------.  1 root root   632 2017-03-03 01:43:05.134844881 -0500 .bash_history
    -rw-r--r--.  1 root root    18 2009-05-20 06:45:02.000000000 -0400 .bash_logout
    
    
  7. cp:复制
    参数:
    -a:相当于-pdr
    -p:连同文件属性一起复制过去
    -d:若源文件为链接文件属性,则复制链接文件属性而非文件本身
    -r:递归持续复制
    -i:若目标文件已存在,在覆盖时会先询问操作的进行
    -u:增量复制,文件较新才会复制

    [root@CentOS kevin]# cp /var/log/wtmp  .
    
    #想要复制到当前目录,最后的.不要忘记
    

    在默认情况下,cp的源文件与目的文件的权限是不相同的,目的文件的所有者通常会命令操作者本身
    一些密码文件(/etc/shadow)以及一些配置文件,就不能直接以cp来复制,而必须要加上-a或者-p等可以完整复制文件权限的参数才行
    软连接文件相当于快捷方式

    -rw-------. 1 root root 3235 Mar  1 16:47 anaconda-ks.cfg
    [root@CentOS ~]# cp -s anaconda-ks.cfg test1
    [root@CentOS ~]# cp -l anaconda-ks.cfg test2
    [root@CentOS ~]# ls -l test*
    lrwxrwxrwx. 1 root root   15 Mar  3 20:49 test1 -> anaconda-ks.cfg
    -rw-------. 2 root root 3235 Mar  1 16:47 test2
    
    # test1是软连接文件,文件属性被修改
    
    
    # test1为lrwxrwxrwx
    
    
    # test2位硬链接文件,文件属性没变
    
    
    # test2为-rw-------
    
    
    
    #复制test1使用-d选项:
    
    [root@CentOS ~]# cp test1 test7
    [root@CentOS ~]# cp -d test1 test8
    [root@CentOS ~]# ll test*
    -rw-------. 1 root root 3235 Mar  3 20:55 test7
    lrwxrwxrwx. 1 root root   15 Mar  3 20:55 test8 -> anaconda-ks.cfg
    
    # test1的权限为lrwxrwxrwx
    
    
    # 加-d可以复制链接文件的属性,权限未改变,为lrwxrwxrwx
    
    
    # 没加-d文件权限被修改,为-rw-------
    

    系统默认复制源文件,用-d可以复制链接文件本身

    
    #同时复制多个文件
    
    [root@CentOS ~]# cp ~/.bashrc ~/.bash_history /tmp

    鸟哥的linux私房菜学习笔记《六》文件与目录管理_第1张图片

  8. rm:删除
    参数:
    -f:忽略不存在的文件,不会出现警告信息
    -i:互动模式,再删除前会询问是否操作
    -r:递归删除,最常用在目录的删除

    [root@CentOS ~]# type rm
    rm is aliased to `rm -i'
    [root@CentOS ~]# \rm /tmp//etc/
    
    # rm默认是使用命令别名的,rm是rm -i的别名,使用\可以忽略命令别名
    
    如果文件名带有-,系统会误判为参数,使用./指明当前目录即可
    [root@CentOS ~]# ll
    -rw-r--r--. 1 root  root      0 Mar  3 21:36 -aaa-
    [root@CentOS ~]# rm -aaa- 
    Try `rm ./-aaa-' to remove the file `-aaa-'.
    [root@CentOS ~]# rm ./-aaa- 
    rm: remove regular empty file `./-aaa-'? y
    
    # 删除成功
    
  9. mv:移动

    使用mv来重命名:
    [root@CentOS ~]# touch test
    [root@CentOS ~]# mv test 123
    [root@CentOS ~]# ll
    -rw-r--r--. 1 root  root      0 Mar  3 21:40 123
  10. basename,dirname取得文件名与目录名称

    
    # 取得最后的文件名:
    
    [root@CentOS ~]# basename /etc/sysconfig/network
    network
    
    # 取得目录名
    
    [root@CentOS ~]# dirname /etc/sysconfig/network
    /etc/sysconfig
  11. touch:修改文件时间或创建文件
    touch 这个命令最常被使用的情况是:

    建立一个空的文件;
    将某个文件日期修订为目前日期 (mtime 与 atime)
    

    用ls查看的话,默认时间是修改时间
    鸟哥的linux私房菜学习笔记《六》文件与目录管理_第2张图片

    
    #显示mtime:
    
    [root@CentOS ~]# ls -l /etc/man.config
    
    
    #显示ctime:
    
    [root@CentOS ~]# ls -l --time=ctime /etc/man.config
    
    
    #显示atime:
    
    [root@CentOS ~]# ls -l --time=atime /etc/man.config

    鸟哥的linux私房菜学习笔记《六》文件与目录管理_第3张图片
    鸟哥的linux私房菜学习笔记《六》文件与目录管理_第4张图片
    至于分号『 ; 』则代表连续指令的下达啦!你可以在一行指令当中写入多重指令, 这些指令可以『依序』执行。
    鸟哥的linux私房菜学习笔记《六》文件与目录管理_第5张图片

你可能感兴趣的:(linux服务器)