Linux 文件操作
文件操作
概念
文件的定义
- 广义:一切皆文件
- 狭义:磁盘文件
Linux 中文件是一个字符流序列
普通文件(文本文件、可执行文件)
目录
磁盘、键盘、打印机、网卡等设备
文件的成分
索引节点(i 结点):
文件的信息:文件权限、文件主、文件大小、存放位置、建立日期等
文件使用的一个标识符,同一个文件有相同的 inode 号。
数据:文件的实际内容、
查看文件的 i 节结号:ls -I
文件名
文件名最长可多达 255 个字符,除斜线 / 和空字符以外,文件名可以包含任意的 ACSII 字符
避免使用特殊字符 ;、|、>、<、”、`、$、!、%、&、*、?、\、(、)、[、]、空格、制表符或者其他的控制字符
习惯上允许使用 “_” 或 “.” 来区别文件的类型;同类文件应使用同样的后缀或扩展名
文件名区分大小写
以圆点 “.” 开头的文件名是隐含文件,必须使用 ls –a 才能在屏幕上显示。
文件目录
用于标识系统中的文件及物理地址,提供给检索文件使用。
文件目录项包含:文件名、i 结点号。
文件系统层次结构标准(FHS)
/
:linux 系统目录树的起点bin
:命令文件目录,也称二进制目录boot
:存放系统的内核文件和引导装载程序文件dev
:设备文件目录,存放所有的设备文件,例如 cdrom 为光盘设备etc
:存放系统配置文件,如 password 文件home
:包含系统中各个用户的主目录,子目录名即为各用户名lib
:存放各种编程语言库media
:系统设置的自动挂载点,如 u 盘的自动挂载点opt
:表示可选择的意思,有些软件包会被安装在这里;usr
:最大的目录之一,很多系统中,该目录是作为独立的分区挂载的,该目录中主要存放不经常变化的数据,以及系统下安装的应用程序目录mnt
:主要用来临时挂载文件系统,为某些设备默认提供挂载点 (WSL 中 windows 系统的文件会被挂载在这个目录)proc
:虚拟文件系统,该目录中的文件是内存中的映像。sbin
:保存系统管理员或者 root 用户的命令文件。tmp
:存放临时文件var
:通常保存经常变化的内容,如系统日志、邮件文件等root
:系统管理员主目录
文件路径
分类
绝对路径:从 /
目录开始直到目标文件或者目录的路径
相对路径:相对路径是指从当前所在的目录出发,直到目标文件或者目录的路径。
表示目录的特殊符号
~
表示用户的主目录.
表示当前目录..
表示上一级目录
文件类型
普通文件(-)
常规文件,包含各种长度的字符串。 内核对这些数据没有进行结构化,只是有序的字节序列
文本文件 :信件、脚本等
数据文件:电子表格、数据库等
可执行的二进制文件:linux 系统所提供的各种命令
目录文件(d)
目录也称为文件夹,是一类特殊的文件;
每个目录的第一项:表示目录本身,并以 .
为文件名。
每个目录的第二项:表示该目录的父目录,用 ..
表示
设备文件(c、b)
设备文件除了存放在文件节点中的信息外,它们不包含任何数据。
设备文件通常在 /dev
目录下:
字符(character)设备:键盘、终端、打印机和鼠标。
块(block)设备:硬盘、光盘等。
链接文件(l)
Linux 具有为一个文件起多个名字的功能,称为链接
其他
套接字(sockets)
管道(pipe)
基本操作
创建文件
vi filename (vi 编辑器的基本用法)
cat > filename (输出重定向)
touch 命令
- 更新一个文件的访问和修改时间,如果没有对应文件则新建该文件。
touch <file-name/file-path>
查看文件
ls 命令(list)
功能:显示目录内容,默认显示当前目录的文件列表。 如果所给的参数是文件,则仅列出与该文件有关的信息。
格式:
ls [-选项] [文件或目录路径]
重要选项
- -a(all):列出目录中所有项,包括以“.”开始的项(以点开头的为隐藏文件)。
- -l(use a long listing format):以长格式来显示文件的详细信息。每行列出 的信息依次是:文件的类型与权限、链 接数、文件属主、文件属组、文件大小、 建立或者最近修改的时间。
- -i(inode):在输出的第一列显示文件的索引节点号。
- -d(directory):仅列出目录本身的信息,而非列出目录中的文件列表信息
常用
- 按时间排序,以列表的方式显示目录项 ls -lrt
删除文件
rm 命令
- 功能:删除文件与目录
- 格式:
rm [选项] 文件名
- 选项
- -f 文件名 不提示直接删除,强制删除
- -r 目录名 递归删除目录文件 危险操作!
其他
file 命令
- 功能:确定指定文件类型
- 格式:
file 文件名 [文件名…]
- 实例:
file *
目录操作
新建目录
mkdir 命令
功能:新建目录
格式:
mkdir [选项] [目录名]
实例
- 新建目录 dir1
mkdir dir1
- 同时创建 2 个目录
mkdir dir2 dir3
- 递归生成目录 dir4、dir5
- 即 dir4 是当前目录的子目录,而 dir5 又是 dir4 的子目录
mkdir –p dir4/dir5
- 对生成的目录指定权限: 744(111 100 100)
mkdir –m 744 dir6
- 新建目录 dir1
切换目录
cd 命令
- 功能:更改当前目录 (执行和读权限)
- 格式:cd [目录路径]
- 实例
|
|
删除空目录
rmdir 命令
功能:删除空目录
格式:
rmdir [选项] [目录路径]
实例
|
|
复制文件或目录
cp 命令
功能:复制文件或者目录
格式:
cp [选项] 源文件或者目录路径 目标文件或者目录路径
常用选项
- -b 若存在同名文件,覆盖前先备份原来的文件
- -r 以递归的方式复制文件,用于复制源目录内的内容(保留源目录 结构)
- -a 复制时包含当前目录
实例 1:将文件 m1 复制为 f1(f1 不存在)
|
|
实例 2:将文件 m1 复制为 f1(f1 存在,内容为 m1)
|
|
实例 3:将文件 m3 复制为 f1,如果 f1 文件已经存在,则备份原来的 f1 文件。
|
|
实例 4:将当前目录(dir1)下的所有文件(不包含目录)复制到 test 目录中
|
|
实例 5:复制目录 test 的所有内容到 dir1 中
|
|
移动文件或目录
mv 命令
move
功能:移动(剪切)或重命名文件或者目录。
格式
|
|
常用选项
-b 若存在同名文件,覆盖前先备份原来的文件
-f 强制覆盖同名文件
实例 1:
|
|
查找、检索、排序文件
find
功能:从指定路径开始向下搜索满足表达式的文件和目录。
格式
|
|
常用表达式
-name 文件 按文件名查找,可以使用通配符
-type 文件类型 按文件类型查找;f 为普通文件、d 为目录文件,l 为链接 文件,b 为块设备文件、C 为字符设备文件
-size [+|-] 文件大小 查找指定大小的文件; c:字节 ; k: Kb ;M:Mb ; G:Gb
-user 用户名 查找文件所有者为指定用户的文件
-group 组名 查找文件所属组为指定组的文件
-perm 权限值 按权限查找
-mtime(mmin),-atime (amin),-ctime(cmin) +/-n 按时间属性进行检索
常用操作
-delete 删除搜索到的文件和目录
-exec 命令名 { } ; 对搜索到的结果执行特定的命令
时间属性检索
- -mtime(Modification time):文件内容(内容数据)修改时间
- -ctime(Change time):文件属性(权限)修改时间
- -atime(Access time):文件被读取时间
- -mtime n: n 为数字,意义为在 n 天之前的一天以内被更改过的文件。
- -mtime +n: 列出 n 天之前(不含 n 天本身)被更改过的文件
- -mtime -n: 列出 n 天之内(含有 n 天本身)被更改过的文件
例
|
|
grep
功能:从指定文本文件或者标准输出中查找符合条件的字符串,默认显示其所在行的内容。
格式
|
|
常用选项
-i 忽略字符大小写的差别
-n 在显示符合的字符串之前,标出该行的行号
-v 显示不包含指定字符串的行
例
|
|
sort
功能:对文件进行排序与合并
格式
|
|
实例
|
|
例
|
|
文件权限
详见:https://blog.csdn.net/u013197629/article/details/73608613
概念
文件权限是指文件的访问控制,即哪些用户可以访问文件以及执行 什么样的操作
用户分类
- 文件所有者(owner):建立文件或者目录的用户
- 同组用户(group):文件所属组群中的所有用户
- 其他用户(other):既不是文件所有者,也不是同组用户的其他用户
文件的三类访问权限
读取权限:浏览文件/目录中内容的权限
写入权限
- 文件:修改文件内容的权限
- 目录:删除、添加和重命名目录内文件的权限
执行权限
- 文件:对可执行文件而言,是允许执行的权限
- 目录:进入目录的权限
默认权限
- 新建一个文件或者目录时,系统会为文件设置默认权限。
- 默认权限的设置与系统的 umask 值有关 可以通过 umask 命令查看当前系统的 umask 设置
访问权限的表示方法
字母表示法
- r(读)
- w(写)
- x(可执行或查找)
- -(无权限)
数字表示法
相应权限位有权限表示为 1,无权限表示为 0,然后转换为八进制表示
修改文件的权限
chmod 命令
change mode
功能:修改文件的访问权限(文件属主或者 root)
格式
|
|
例
|
|
chown 命令
change owner
功能:修改文件的所有者,并可一并修改文件的所属组群
格式
|
|
例
|
|
chgrp 命令
change group
功能:修改文件的所属组群
格式
|
|
例
|
|