目录
一、 删除空目录(rmdir)
二、ln 硬链接与软链接
三、新建空文件或更新文件的时间戳(touch)
四、比较文件内容的差异(diff)
五、显示当前时间或设置系统时间(date)
六、显示日历(cal)
一、 删除空目录(rmdir)
1.命令格式:
---rmdir [选项]... 目录...
2.命令功能: 该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。
3.命令参数
参数 | 功能 |
---|---|
-p | 递归删除目录及其子目录,同时删除空的父目录 |
-v /--verbose | 显示详细的执行过程 |
命令案例
实例一:rmdir 不能删除非空目录
命令: rmdir doc
说明: rmdir 目录名 命令不能直接删除非空目录
实例 2:rmdir -p 当子目录被删除后使它也成为空目录的话,则顺便一并删除
命令: rmdir -p logs
二、ln 硬链接与软链接
命令描述:
ln 是 linux 中一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个 同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目 录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的 目录下用 ln 命令链接(link)它就可以,不必重复的占用磁盘空间
1.命令格式:
---ln [参数][源文件或目录][目标文件或目录]
2.命令功能: Linux 文件系统中,有所谓的链接(link),我们可以将其视为文件的别名,而链接又 可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个文件可以 有多个名称(真正的别名),而软链接的方式则是产生一个特殊的文件(多了一个文件), 该文件的内容是指向另一个文件的地址(其实就是超链接)。硬链接是存在同一个文件 系统中,而软链接却可以跨越不同的文件系统
使用实例:
实例 1:给文件创建软链接
Cal 是输出日历,> 符号是重定向,就是把 cal 的输出重新给个输出地方,这 里重定向到了文件 2023.log 中,所以可以看到该文件内容是日历,如下截图
查看软连接和文件内容
实例 2:给文件创建硬链接
命令: ln 2023.log hardlink2023.log
实例 3:接上面两实例,链接完毕后,删除和重建链接原文件
说明: 1.源文件被删除后,并没有影响硬链接文件 2.重建源文件后,找到了链接文件系统;重建后,硬链接文件并没有受到源文件影 响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效
实例 4:将文件链接为另一个目录中的相同名字
说明: 在 test 目录中创建了 2023.log 的硬链接,修改 test 目录中的 2023.log 文件,同 时也会同步到源文件
一个文件可以有多个名字,一个目录能不能?
说明
1.目录只能创建软链接
2.目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层 数过多 这样的错误
3.在链接目标目录中修改文件都会在源文件目录中同步变化 。
三、新建空文件或更新文件的时间戳(touch)
1.命令格式:
---touch [选项]... 文件...
2.命令参数:
参数 | 功能 |
---|---|
-a /--time=atime /--time=access /--time=use | 只更改文件的访问时间 |
-c /--no-create | 不创建任何文件 |
-d | 使用指定的日期时间,而非当前时间 |
-f | 解决BSD版本兼容性问题,忽略不处理 |
-m /--time=mtime /--time=modify | 只更改文件的修改时间 |
-r | 以参考文件的日期时间来更新指定文件的日期时间 |
-t | 使用指定的日期时间,而不是当前时间 |
3.命令功能: touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
4.使用范例:
实例一:创建不存在的文件
命令: touch log2012.log log2013.log
实例二:更新 log.log 的时间和 log2012.log 时间戳相同
命令: touch -r log.log log2012.log
实例三:设定文件的时间戳
命令: touch -t 201214112234.50 log.log
说明: -t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值. 此处的 time 规定为如下形式的十进制数: [[CC]YY]MMDDhhmm[.SS] 这里,CC 为年数中的前两位,即”世纪数”;
YY 为年数的后两位,即某 世纪中的年数.如果不给出 CC 的值,则 touch 将把年数 CCYY 限定在 1969--2068 之内.
MM 为月数,
DD 为天将把年数 CCYY 限定在 1969--2068 之内.MM 为月数,
DD 为天数,hh 为小时数(几点),mm 为分钟数,
SS 为秒数.此处秒的设 定范围是 0--61,这样可以处理闰秒.这些数字组成的时间是环境变量 TZ 指定的 时区中的一个时 间.由于系统的限制,早于 1970 年 1 月 1 日的时间是错误的。
四、比较文件内容的差异(diff)
命令描述:
diff 命令是 linux 上非常重要的工具,用于比较文件的内容,特别是比较两个版本 不同的文件以找到改动的地方。diff 在命令行中打印每一个行的改动。最新版本的 diff 还 支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch 程序,可以根据 diff 的输出将 a.c 的文件内容更新为 b.c。diff 是 svn、cvs、git 等版本 控制工具不可或缺的一部分。
使用实例:
实例 1:比较两个文件
(1c1)说明:
- 第一个数字1表示在第一个文件中出现了差异的行号。
- 字母c表示这是一个更改(change)操作。
- 第二个数字1表示在第二个文件中出现了差异的行号。
实例 2:并排格式输出
命令: diff log2013.log log2014.log -y -W 50
说明: “|”表示前后 2 个文件内容有不同
“<”表示后面文件比前面文件少了 1 行内容
“>”表示后面文件比前面文件多了 1 行内容
实例 3:上下文输出格式
命令: diff log2013.log log2014.log -c
说明: 这种方式在开头两行作了比较文件的说明,这里有三中特殊字符:
“+” 比较的文件的后者比前着多一行
“-” 比较的文件的后者比前着少一行
“!” 比较的文件两者有差别的行
实例 4:统一格式输出
命令: diff log2014.log log2013.log -u
说明:
--- file1.txt
: 表示下面的行来自file1.txt
文件。+++ file2.txt
: 表示下面的行来自file2.txt
文件。@@ -1 +1 @@
: 表示下面的行是修改之后的行(+
开头)和修改之前的行(-
开头)所在的位置信息。
-1
表示修改之前的行号为1。+1
表示修改之后的行号也为1。-content1
: 表示修改之前的第1行内容为content1
。+content2
: 表示修改之后的第1行内容为content2
。
实例 5:比较文件夹不同
命令: diff test3 test6
五、显示当前时间或设置系统时间(date)
描述:
在 linux 环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的 运算,熟练运用 date 命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。
1.命令格式:
---date [参数]... [+格式]
2.命令功能: date 可以用来显示或设定系统的日期与时间
3.使用实例:
实例 1:显示当前时间
命令: date date '+%c' date '+%D' date '+%x' date '+%T' date '+%X'
实例 2:显示日期和设定时间
命令: date --date 08:42:00
实例 3:显示月份和日数
命令: date '+%B %d'
实例 4:显示时间后跳行,再显示目前日期
命令: date '+%T%n%D'
六、显示日历(cal)
描述:
cal 命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历, 通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又 名“西历”
使用实例:
实例 1:显示当前月份日历
实例 2:显示指定月份的日历
命令: cal 9 2023
实例 3:显示 2023 年日历
命令: cal -y 2013
实例 4:显示自 1 月 1 日的天数
命令: cal -j
实例 5:星期一显示在第一列
命令: cal -m