文件管理

Posted zhaihongyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件管理相关的知识,希望对你有一定的参考价值。

                                                           文件管理             
                       
  1.文件系统目录结构功能
 
      /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器         (bootloader, grub)都存放于此目录
      /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
      /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
      /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
     /lib64:专用于x86_64系统上的辅助共享库文件存放位置
     /etc:配置文件目录
     /home/USERNAME:普通用户家目录
     /root:管理员的家目录
     /media:便携式移动设备挂载点
     /mnt:临时文件系统挂载点
     /dev:设备文件及特殊文件存储位置
      b: block device,随机访问
       c: character device,线性访问
       /opt:第三方应用程序的安装位置
       /srv:系统上运行的服务用到的数据
       /tmp:临时文件存储位置
      /usr: universal shared, read-only data

 

       参考文档(http://www.pathname.com/fhs/)
 
 
       Linux下的文件类型
           - 普通文件
                 d目录文件 蓝色
                 b块设备
                 c字符设备
                 l符号链接文件 浅蓝色
                 p管道文件 黄色
                s套接字文件 紫色



              文件操作命令

 

                pwd 当前所在文件夹

 

                  绝对路径
                 以/开始描述
                   相对路径
                  不以/开始描述

 

            基名basename 只取文件名
            目录名 dirname 只取路径 

 

      更改目录
      命令 cd   改变路径
     cd ..  父目录
     cd    切换到当前工作目录
     cd -   切换到上一次工作目录

 

  列出当前目录的文件和子目录
 ls -a 列出所有目录、子目录、文件和隐藏文件
 ls -R 列出从当前目录开始的所有的子目录、文件并且一层层往下显示
 ls -F 列出文件、目录名并显示出文件类型
 ls -t 以修改时间为时间倒序来列出文件、子目录
 ls -l 以长列表格式显示文件、目录的详细信息

 

 查看文件状态 
 stat
 确定文件内容
 file + 文件

 

 文件通配符模式
 1. * 任意长度的任意字符(0,1,n)
 2. ? 一位长度的任意字符
 3. ~ 表示当前用户家目录
 4.- 表示上次所在的目录
 5. [0-9]数字
 6[a-z]字母
 7[A-Z]字母
 8[wang]匹配其中的任意一个字符
 9[^wang]匹配列表中所有字符以外的字符
 [:alnum:]任意数字或字母  [:alpha:] 任意字母 [:blank:] 
 [:cntrl:]控制非打印字符[:digit:]任意数字 [:graph:] 图形字符 
 [:lower:] 小写字母 [:print:]可打印字符
 [:punct:] 标点符号 [:space:] 水平或垂直空白字符 
 [:upper:] 大写字母[:xdigit:]十六进制字符

 

 创建空文件和刷新时间
 touch
 必选参数对长短选项同时适用。
  -a   只更改访问时间
  -c, --no-create 不创建任何文件
  -d, --date=字符串 使用指定字符串表示时间而非当前时间
  -f   (忽略)
  -h, --no-dereference  会影响符号链接本身,而非符号链接所指示的目的地
    (当系统支持更改符号链接的所有者时,此选项才有用)
  -m   只更改修改时间
  -r, --reference=FILE  use this file‘s times instead of current time
  -t STAMP              use [[CC]YY]MMDDhhmm[.ss] instead of current time
      --time=WORD        change the specified time:
                          WORD is access, atime, or use: equivalent to -a
                          WORD is modify or mtime: equivalent to -m

 

     
2.复制转移和删除文件

 

 复制文件和目录
 cp
 参数:
 -a :相当于 -pdr 的意思;
 -d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
 -f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
 -i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
 -l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
 -p :连同档案的属性一起复制过去,而非使用预设属性;
 -r :递归持续复制,用于目录的复制行为;
 -s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
 -u :若 destination 比 source 旧才更新 destination !
 最后需要注意的,如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!
 
 
 移动和重命名文件
 命令参数:
 -b :若需覆盖文件,则覆盖前先行备份。 
 -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
 -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
 -u :若目标文件已经存在,且 source 比较新,才会更新(update)
 -t  : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

 

 删除文件
 rm命令的一般形式为:rm [选项]... 目录... 删除指定的<文件>(即解除链接)。

 

 -d      --directory    删除可能仍有数据的目录 (只限超级用户)
 -f      --force          略过不存在的文件,不显示任何信息
 -i      --interactive 进行任何删除操作前必须先确认
 -r/R --recursive    同时删除该目录下的所有目录层
 -v      --verbose     详细显示进行的步骤
 --help            显示此帮助信息并离开
 --version      显示版本信息并离开
 要删除第一个字符为‘-’的文件 (例如‘-foo’),请使用以下其中一种方法:
 rm -- -foo
 rm ./-foo

 

 请注意,如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
 该文件的内容无法还原,请考虑使用 shred。

 

 范例:

 

 删除所有rb语言程序档;删除前逐一询问确认 :
 rm -i *.rb

 

 将 Finished 子目录及子目录中所有档案删除 :
 rm -r Finished

 

 将 Finished 子目录及子目录中所有档案删除,并且不用--确认 :

 

 rm -rf Finished
 
 
 
3目录操作
 
 显示目录树
 tree
 命令参数:tree有很多参数命令,具体想查看全部的命令可以使用man  tree命令查看,下面列举部分常用的。

 

 1.tree  -a 显示所有文件和目录(不加-a,则隐藏目录不显示)
 2.tree -d 显示目录名称而非内容
 3.tree -f 在每个文件或目录之前,显示完整的相对路径名称
 4.tree -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
 5.tree -r 以相反次序排列
 6.tree -t 用文件和目录的更改时间排序
 7.tree -L n 只显示 n 层目录 (n 为数字)
 8.tree -dirsfirst 目录显示在前,文件显示在后
 
 创建目录mkdir
 删除目录rmdir

 

文件元数据和节点表结构
 节点编号的内容
 1.node包含文件的元信息,具体来说有以下内容:
 2.Size 文件的字节数
 3.Uid 文件拥有者的User ID
 4.Gid 文件的Group ID
 5.Access 文件的读、写、执行权限
 6.文件的时间戳,共有三个:
 7.Change 指inode上一次变动的时间
 8.Modify 指文件内容上一次变动的时间
 9.Access 指文件上一次打开的时间
 10.Links 链接数,即有多少文件名指向这个inode
 11.Inode 文件数据block的位置
 12.Blocks 块数
 13.IO Blocks 块大小
 14.Device 设备号码

 

 查看节点编号利用率
 df -i

 

4.硬链接和软连接
       硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。
 当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
 
 
      软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不
 同文件系统的文件。
 
 
 (1)硬链接存在以下几点特性:

 

 1.文件有相同的节点编号;
 2.只能对已存在的文件进行创建;
 3.不能跨分区进行硬链接的创建;
 4.不能对目录进行创建,只可对文件创建;
 5.删除一个硬链接文件并不影响其他有相同节点编号的文件。
 6.硬链接文件不占用存储空间
 7.修改源文件或者目标文件,对应另外一个文件也会发生相应修改
 
 (2)软链接有如下的特性:

 

 1.软链接(l)有自己的文件属性及权限;
 2.可对不存在的文件或目录创建软链接;
 3.软链接可以跨分区;
 4.软链接可对文件或目录创建;
 5.创建软链接时,链接计数不会增加;
 6.删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软      连接被称为死链接。




 (3)硬链接和软链接区别总结
    1. 本质:
      硬链接:本质是同一个文件
      软链接:本质不是同一个文件
     2. 跨设备
      硬链接:不支持
      软链接:支持
     3. inode
     硬链接:相同
     软链接:不同
      4. 链接数
      硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
      软链接:创建或删除,链接数不会变化
      5. 文件夹
      硬链接:不支持
      软链接:支持
       6. 相对路径
       硬链接:原始文件相对路径是相对于当前工作目录
       软链接:原始文件的相对路径是相对于链接文件的相对路径
        7. 删除源文件
       硬链接:只是链接数减一,但链接文件的访问不受影响
       软链接:链接文件将无法访问
         8. 文件类型
        硬链接:和源文件相同
        软链接:链接文件,和源文件无关
 

以上是关于文件管理的主要内容,如果未能解决你的问题,请参考以下文章

华为手机文件管理器

DELPHI基础教程:文件管理(一)[2]

Android 调用系统文件管理器

iOS苹果手机最好用的文件管理器

文件管理与重定向

如何高效实现公司文件管理?