• Linux文件管理


    学习大纲:
    Linux中文件的作用
    Linux文件的命名规则
    Linux中文件的相关信息
    Linux文件类型
    Linux文件权限
    修改文件创建者身份
    修改文件所属组
    文件的访问控制列表(ACL)
    Linux链接文件
     
     
    1、Linux文件的作用
        在Linux系统中,它将所有的一切都以文件的方式存放在系统中(目录也是一个特殊的    文件)。
        因此对系统的管理,就是对文件进行管理。
     
     
    2、Linux文件的命名规则
          文件名最大为255个字符。
          文件名中不能包括Linux特殊字符如“”、“/”等(如果在文件中使用这些特殊符号可通过转义符  “”将其转义)。
          以“.”开头的文件为隐藏文件。
               -如果要显示隐藏文件,则需要用户在ls指令后加上-a或-A来显示。
               -如果要创建隐藏文件则只需在文件名前加上“.”
     
     
    3、linux中文件的相关信息
          当用户使用指令“ls  -l”以长列表方式查看文件的详细信息时,就会显示文件的下面的相关信息
               -rw-r--r-- 1 root lonny 12 Apr 19 19:50 file1
               - 文件类型、文件权限、硬连接数、文件创建者、文件所属组、文件大小、更动时间、文件名
               
     
               
     
    4、Linux文件类型
            当用户查看文件详细时,第一个字符就这个文件的类型。
                  -:一般文件
                  d:目录文件
                  b:块设备文件
                  c:字符设备文件
                  l:链接文件
                  p:人工管道
                  
            检查文件类型的其它方法
                  file     <文件名>
                  stat    <文件名>
     
    5、文件权限
           能够操作文件的用户分类
           每类用户能够使用的权限
           修改文件权限一般方法
           通过数字来修改文件的权限
     
     
    能够操作文件的用户分类
           对于每一个文件,Linux都提供了一套文件权限系统。
           在文件权限系统中,将可以操作文件的用户都分成三类:
                  -- 文件的创建者 (u)
                  -- 文件所属组的成员(g)
                  -- 其他用户 (O)
     
     
    每类用户能够使用的权限
           对于每一类用户,权限系统又分别给他们提供三种权限(rwx)
           针对文件而言,这三种权限的含义为:
               - 读(r) 用户是否有权力读文件的内容
               - 写(w) 用户是否有权利改变文件的内容
               - 执行(x)用户是否有权利执行文件
     
     
    修改文件权限一般方法
          用户可使用chmod指令来改变文件的权限
              - 语法:chmod <权限><文件名>
          改变文件权限的方法:
               --通过“+”、“-”来为某类用户添加或去掉相关权限
                    例:chmod  u+x   file //为文件的创建者添加一个执行的权限
               --通过“=”来为某用户赋于某权限
                    例:chmod  g=rx  file //为文件所属组赋于一个读与执行的仅限
              
     
    使用数字来改变文件权限
           chmod后还可以用三个数字来表示用户权限             
                - 第一位数字代表文件创建者权限
                - 第二位数字代表文件所属组成员权限
                - 第三位数字代表其他用户权限
            
           每一个数字都采用加和的方式得出。
                - 4 (读)   
                - 2 (写)
                - 1 (执行)
                 例:chmod 755 file  //为文件赋于rwxr-xr-x权限
                 分析:u(7=4+2+1 rwx) g(5=4+1 r-x) o(5=4+1 r-x)
       
            只有文件的拥有者和root用户才可以改变文件的权限。
     
     
    6、修改文件创建者身份
            每一个文件都有一个拥有者。
            只有root用户才可以用“chown”指令来改变文件的拥有者。
            语法:chown <用户名>  <文件名>
            例:chown  student  file
     
     
    7、修改文件的所属组
           每一个文件都属于并只能属于一个指定的组。
           文件的创建者与root用户,可以用“chgrp”指令来改变文件所属的组。
            注:当使用文件创建者来改变属组时,那么被改变的新组中必须包含此用户。
            语法:chgrp  <组名>  <文件名>
                    例:chgrp  grp1  file
     
     
    8、文件访问控制列表(ACL)
       ACL可以为某个文件单独设置该文件具体的某用户或组的权限。
        getfacl <文件名>      
               - 获取文件的访问控制信息
               
            setfacl设置文件的acl
               -m修改文件的acl
               -x取消用户或组对文件的权限
               
    - 语法:
    •   setfacl –m  u:用户名:权限    <文件名>   //设置某用户名的访问权限
    •   setfacl –m  g:组    名:权限    <文件名>   //设置某个组的访问权限
    •   setfacl –x  u:用户名 <文件名>                //取消某用户名的访问权限
    •   setfacl –x  g:组名 <文件名>                   //取消某个组的访问权限
    •   setfacl    -m    m:[rwx]   <文件名>   
                    【先设置文件的acl权限,再设置文件的umask】
     
     
    9、软连接和硬链接
      软链接(符号链接)
           - 软链接就有一点像为原文件名创建了一个新的指针。当对软链接操作时,系统就会找到原文 件并对原文件进行操作(与Windows的快捷方式类似)。
           - 语法:ln  –s  <源文件>  <新建链接名>
     
       硬链接
        - 硬链接文件完全等同于原文件,原文件名和连接文件都指向相同的物理地址。
        - 语法:ln <源文件> <新建链接名>
        - 硬链接的描述
                       --不可跨文件系统创建硬连接,也不可为目录建立硬链接。
                       --文件在磁盘中的数据是唯一的,这样就可以节省硬盘空间
                       --由于只有当删除文件的最后一个节点时,文件才能真正从磁盘空间中消除,因此可以防止不必要的误删除。       
     
     
    建立软链接和硬链接
    创建硬链接: ln    原始文件或文件夹    目标文件或文件夹   
    创建软链接: ln     -s    原始文件或文件夹    目标文件或文件夹   
     
    [root@redhat ~]# touch test1                        创建文件test1
    [root@redhat ~]#ln    test1   test2                为test1创建硬链接test2
    [root@redhat ~]# ln  -s   test1   test3          为test1创建软链接test3
     
    [root@redhat ~]# ls -li
    1704073 -rw-r--r--. 2 root root     0 May 11 16:52 test1
    1704073 -rw-r--r--. 2 root root     0 May 11 16:52 test2
    1704076 lrwxrwxrwx. 1 root root     5 May 11 16:53 test3 -> test1   【test3表示软链接】
     
    从上面可以看出:
    硬连接文件test2与原文件test1的inode节点相同,均为1704073,然而符号连接文件的inode节点不同。
     
    [root@redhat ~]# echo "im test1" >> test1
     
    [root@redhat ~]# cat test1
    im test1
    [root@redhat ~]# cat test2
    im test1
    [root@redhat ~]# cat test3
    im test1
     
    [root@redhat ~]# rm -f test1
    [root@redhat ~]# cat test2
    im test1
    [root@redhat ~]# cat test3
    cat: test3: No such file or directory
     
    通过上面的测试可以看出:当删除原始文件test1后,硬连接test2不受影响,但是符号连接test3文件无效。
     
     
    删除软链接
    rm    -rf symbolic_name    注意不是rm -rf   symbolic_name/ 
    [root@redhat ~]# rm test3
    rm: remove symbolic link `test3'? y
     
     
    当删除链接文件时,如果不小心会把原始文件删掉
    例:
    ln    -s   /home/user/bak  /var/bak
    rm     /var/bak/   会提示bak是一个文件夹无法删除这时千万不要用 rm -rf /var/bak/ 来删除, 否则你删除的并不是链接文件 而是真正的 /home/user/bak 文件夹
     
    想要删除链接文件要用以下命令 rm   /var/bak 只是少了一个“ / ” ,删除的 就是链接文件, 也就是在文件的最后不要加上/  
  • 相关阅读:
    Android 中Base64的操作
    android 异步图片处理 工具类
    android 跨应用跳转 启动其他应用指定界面
    C++代码案例
    Android 中 Base64的操作应用
    Python基础笔记1
    [linux] 大批量删除任务
    Python基础笔记3
    [R] 如何快速生成许多差异明显的颜色?
    Python基础笔记4
  • 原文地址:https://www.cnblogs.com/liuxing0007/p/10868170.html
Copyright © 2020-2023  润新知