文件管理

文件管理

文件系统目录结构功能

/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 + 文件

文件通配符模式

    • 任意长度的任意字符(0,1,n)
  1. ? 一位长度的任意字符
  2. ~ 表示当前用户家目录
    4.- 表示上次所在的目录
  3. [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

复制转移和删除文件

复制文件和目录

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

目录操作

显示目录树
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

硬链接和软连接
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。
当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。
硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。
如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不

同文件系统的文件。

硬链接存在以下几点特性:

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

软链接有如下的特性:

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

硬链接和软链接区别总结

  1. 本质:
    硬链接:本质是同一个文件
    软链接:本质不是同一个文件
  2. 跨设备
    硬链接:不支持
    软链接:支持
  3. inode
    硬链接:相同
    软链接:不同
  4. 链接数
    硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
    软链接:创建或删除,链接数不会变化
  5. 文件夹
    硬链接:不支持
    软链接:支持
  6. 相对路径
    硬链接:原始文件相对路径是相对于当前工作目录
    软链接:原始文件的相对路径是相对于链接文件的相对路径
  7. 删除源文件
    硬链接:只是链接数减一,但链接文件的访问不受影响
    软链接:链接文件将无法访问
  8. 文件类型
    硬链接:和源文件相同
    软链接:链接文件,和源文件无关
posted @ 2020-03-29 06:50  饕鬄。。  阅读(240)  评论(0)    收藏  举报