文件管理
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. 文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关
以上是关于文件管理的主要内容,如果未能解决你的问题,请参考以下文章