rmdir:删除目录
- 作用:删除一个或者多个目录。
- 用法:rmdir [选项]…目录…
- 主要选项如下:
命令 | 描述 |
---|---|
--ignore-fail-on-non-empty |
忽略任何因目录仍有数据而造成的错误 |
-p, --parents |
删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除 |
-v, --verbose |
显示命令执行过程 |
--help |
显示此帮助信息并退出 |
--version |
输出版本信息并退出。 |
说明 如果目录没有数据则删除该目录。rmdir 所删除的目录,每级目录中都是空的,没 有其他的文件。如果任何一级目录有文件,也不能删除。
案例练习
使用-p 参数删除目录时是一级一级地进行的。
mkdir -p /sirdoc/redhat/
注意 首先在当前目录下创建目录 sirdoc,sirdoc 内又有一个子目录 redhat。
# rmdir -p sirdoc/redhat/
chattr:改变文件的属性
- 作用:防止关键文件被修改。
- 用法:chattr [选项]文件或目录
- 主要选项如下:
命令 | 描述 |
---|---|
-R |
递归处理所有的文件及子目录。 |
-V |
详细显示修改内容,并打印输出。 |
- |
失效属性。 |
+ |
激活属性。 |
= |
指定属性。 |
A |
Atime,告诉系统不要修改对这个文件的最后访问时间。 |
S |
Sync,一旦应用程序对这个文件执行了写操作,系统立刻把修改的结果写到磁盘中。 |
a |
Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。 |
i |
Immutable,系统不允许对这个文件进行任何修改。如果目录具有这个属性,那么任何进程只能修改目录下的文件,不允许建立和删除文件。 |
D |
检查压缩文件中的错误。 |
d |
No dump,在进行文件系统备份时,dump 程序将忽略这个文件。 |
C |
Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据被压缩后才写入磁盘。 |
s |
Secure Delete,让系统在删除这个文件时,使用 0 填充文件所在的区域。 |
u |
Undelete,当一个应用程序请求删除一个文件时,系统会保留其数据块,以便以后能够恢复删除的这个文件。 |
说明 chattr 命令的作用很大,其中一些功能是由 Linux 内核版本来支持的。如果 Linux 内核版本低于 2.2,那么许多功能将不能实现。同样,-D 检查压缩文件中的错误,需 要 2.5.19 以上内核才能支持。另外,通过 chattr 命令修改属性能够提高系统的安全性, 但是它并不适合所有的目录。chattr 命令不能保护/、/dev、/tmp、/var 目录.
案例练习
(1)恢复/root 目录,即子目录的所有文件。
# chattr -R +u/root
(2)用 chattr 命令防止系统中某个关键文件被修改。 在 Linux 下,有些配置文件(passwd,fatab)是不允许任何人修改的。为了防止被误删除 或修改,可以设定该文件的“不可修改位(immutable)”,命令如下:
# chattr +i /etc/fstab
cksum:文件的 CRC 校验
- 作用:打印每个文件的 CRC 校验和及字节统计。
- 用法:cksum [文件]… cksum [选项]
- 主要选项如下:
命令 | 描述 |
---|---|
--help |
显示此帮助信息并退出。 |
--version |
输出版本信息并退出。 |
说明 CRC(Cyclic Redundancy Check,循环冗余校验码)是常用的校验码,在早期的 通信中应用广泛,因为早期的通信技术不够可靠(不可靠性的来源是由通信技术决定 的,比如电磁波通信时受雷电等因素的影响),不可靠的通信就会带来“确认信息” 的困惑,比如红军和蓝军通信联合进攻山下敌军的例子。第一天红军发了一条信息要 蓝军第二天一起进攻,蓝军收到信息之后发一条确认信息,但是蓝军担心的是“确认 信息”如果也不可靠而没有成功到达红军那里,那自己岂不是很危险?于是红军再发 一条“对确认的确认信息”,但同样的问题还是不能解决,红军仍然不敢贸然行动。 对通信的可靠性检查就需要“校验”,校验是从数据本身进行检查,它依靠某种数学 上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理, 如果不可靠就丢弃重发或者进行修复。
CRC 码由两部分组成,前半部分是信息码,就是需要校验的信息,后半部分是校验码。如 果 CRC 码共长 n bit,信息码长 k bit,就称为(n,k)码。它的编码规则如下。 (1)首先将原信息码(kbit)左移 r 位(k+r=n)。 (2)然后运用一个生成多项式 g(x)(也可看成二进制数)用模 2 除上面的式子,得到的余 数就是校验码。 要说明的是,模 2 除就是在除的过程中用模 2 加,模 2 加实际上就是我们熟悉的异或运算, 就是加法不考虑进位,公式如下。
0+0=1+1=0,1+0=0+1=1
即“异”则真,“非异”则假。 由此得到定理:
a+b+b=a
也就是“模 2 减”和“模 2 加”真值表完全相同。 有了加减法就可以用来定义模 2 除法,于是就可以用生成多项式 g(x)生成 CRC 校验码。 例如,g(x)=x 4 +x 3 +x 2 +1,(7,3)码,信息码 110 产生的 CRC 码就是:11101 | 110,0000(设 a=11101,b=1100000)。 取 b 的前 5 位 11000 跟 a 异或得到 101,101 加上 b 没有取到的 00 得到 10100,然后跟 a 异或得到 01001,也就是余数 1001,余数是 1001,所以 CRC 码是 110,1001。 对于 g(x)=x 4 +x 3 +x 2 +1 的解释:(都是从右往左数)x 4表示第 5 位是 1,因为没有 x 1,所以 第 2 位就是 0。
标准的 CRC 码是 CRC-CCITT 和 CRC-16,它们的生成多项式如下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BB1nOhme-1688911325881)(linux常用命令/image-20230706152253716.png)]
案例练习
使用 CRC 检验文件,代码如下:
cksum 1.txt
2422907486 124 1.txt
cmp:比较文件差异
- 作用:比较文件差异。
- 用法:cmp [选项] [第 1 个文件] [第 2 个文件]
- 主要选项如下:
命令 | 描述 |
---|---|
-c--print-chars |
除了标明差异处的十进制字码之外,一并显示该字码所对应的字符。 |
-i<字符数目> |
–ignore-initial=<字符数目>:指定一个数目。 |
-l--verbose |
标识出所有不一样的地方。 |
-s--quiet |
或–silent:不显示错误信息。 |
-v--version |
显示版本信息。 |
--help |
在线帮助。 |
函数的返回值如下。
-
0
:文件是同样的。 -
1
:文件是不同的。 -
>1
:发生错误。
案例练习
比较两个文本文件,代码如下:文章来源:https://www.toymoban.com/news/detail-542044.html
# cmp hello.cpp hello1.cpp
hello.cpp hello1.cpp differ: byte 9, line 1
split:分割文件
- 作用:分割文件。
- 用法:split [选项]… [输入[前缀]]
- 主要选项如下:
命令 | 描述 |
---|---|
-d | 数字表示切割后的小文件。 |
-v | 显示详细的处理信息。 |
-b<字节> | 每个分割文件的大小。 |
-c<字节> | 输出每行的大小。 |
-l<行数> | 指定行数。 |
–help | 显示帮助信息。 |
–version | 显示版本信息。 |
[PREFIX] | 设置分割后文件的前置文件名,split 会自动在前置文件名后加上编号。 |
案例练习
把一个大文件 file 分割成 1MB 大小的文件。文章来源地址https://www.toymoban.com/news/detail-542044.html
Split -b 1m file filebak_
到了这里,关于linux 文件管理命令:rmdir \ chattr \ cksum \ cmp \ split的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!