【笔记】特殊符号 “; && ||”&文件属性(2) & 文件压缩tar & 硬链接 软链接 & 文件时间 & find 按照时间查找

特殊符号; && ||

第一个符号: ;分号

作用: 命令的分隔符 不管前面命令是否执行成功都会执行后面的命令

[root@ahui ~]#touch test.txt;ll test.txt;pwd
-rw-r--r-- 1 root root 0 5月  12 09:00 test.txt
/root

命令执行错误继续执行后面的命令

[root@ahui ~]#mkdi ahui;ll ahui;pwd
-bash: mkdi: 未找到命令
总用量 0
/root
[root@ahui ~]#mkdi ahui;ll ahui;pw
-bash: mkdi: 未找到命令
总用量 0
-bash: pw: 未找到命令

第二个符号: &&

作用: 前面的命令执行成功 才执行&& 后面的命令

[root@ahui ~]#mkdir ahui && ll ahui
mkdir: 无法创建目录"ahui": 文件已存在
[root@ahui ~]#
[root@ahui ~]#touch test.txt && ll test.txt && pwd
-rw-r--r-- 1 root root 0 5月  12 09:04 test.txt
/root
[root@ahui ~]#
[root@ahui ~]#touch test.txt && ll test.txtttt && pwd
ls: 无法访问test.txtttt: 没有那个文件或目录
[root@ahui ~]#ll
总用量 0
drwxr-xr-x 2 root root 6 5月  12 09:01 ahui
-rw-r--r-- 1 root root 0 5月  12 09:04 test.txt
[root@ahui ~]#cd ahui && touch test.txt
[root@ahui ~/ahui]#ll
总用量 0
-rw-r--r-- 1 root root 0 5月  12 09:05 test.txt

第三个符号: ||

作用: 前面的命令执行失败 才执行后面的命令

[root@ahui ~]#touch test.txt|| ll test.txt||pwd
[root@ahui ~]#
[root@ahui ~]#touc test.txt|| ll test.txt||pwd
-bash: touc: 未找到命令
-rw-r--r-- 1 root root 0 5月  12 09:07 test.txt
[root@ahui ~]#touc test.txt|| ll test.txttttt ||pwd
-bash: touc: 未找到命令
ls: 无法访问test.txttttt: 没有那个文件或目录
/root

扩展举例: 如果目录不存在则创建

判断目录是否存在:使用 -d 判断test目录是否存在

[root@ahui ~]#[ -d test ]
[root@ahui ~]#echo $?	 # 返回值0则成功 非0失败
1

[root@ahui ~]#[ -d test ] || mkdir test
[root@ahui ~]#ll
总用量 0
drwxr-xr-x 2 root root 22 5月  12 09:05 ahui
drwxr-xr-x 2 root root  6 5月  12 09:10 test

文件压缩

为什么压缩:

  1. 不常用的文件占用磁盘空间(节约空间)
  2. 压缩后的文件发送到备份服务器
  3. 在发送的过程中减少磁盘IO
    1个文件—> 发送给服务器 —> 和服务器建立连接 IO请求
    1个文件建立1次IO请求 INPUT OUTPUT
    1000个文件 建立1000次IO请求 造成磁盘压力大 导致负载高
    把1000个文件打包成1个文件 建立1次IO减少IO操作

什么时间压缩

  1. 在压缩的过程中最消耗服务器的CPU
  2. 业务的低谷期压缩
  3. 业务的低谷期: 流量较少 访问量少
  4. 具体看公司的zabbix流量图 最低点进行备份
    - 学习视频网站: 12点以后备份
    - 游戏平台: 早上5点左右
    - 小说平台: 早上5点左右
    - 公司官网: 晚上12点后
    - 电商平台: 早上5点左右
    - 快播视频: 中午12点

tar 压缩

命令格式:
命令 [参数选项] 压缩包名称.tar.gz 文件1 文件2 目录
命令 参数 筐子 黄瓜 香蕉 茄子
tar -zcvf package.tar.gz ahui.txt /etc/hosts
压缩目录会压缩里面所有内容
压缩的参数前面可以加- 也可以不加
参数选项:
-----------------------------------------------------
z # 使用gzip方式进行压缩
c # 使用create创建压缩包
v # 显示压缩的过程 verbose 可以省略
f # 指定文件
x # 表示解压 使用xf进行解压
p # 解压时保留文件原有权限 使用pxf进行解压
t # 查看压缩的里面的文件名称 使用tf进行查看
C # 指定解压到哪个位置(默认解压到当前路径)
------------------------------------------------------
-P # 不提示从成员中删除/
–exclude # 排除文件
–exclude-from # 排除文件中记录的文件名

案例1: 打包/etc/hosts 压缩包名称 hosts.tar.gz

相对路径:
首先进入到/etc/目录

[root@ahui ~]#cd /etc
[root@ahui /etc]#ll hosts
-rw-r--r--. 1 root root 158 Jun  7  2013 hosts

[root@ahui /etc]#tar zcvf hosts.tar.gz hosts
hosts
[root@ahui /etc]#ll hosts.tar.gz 
-rw-r--r-- 1 root root 166 May 12 09:44 hosts.tar.gz

绝对路径:
系统为了保护系统文件安全 使用绝对路径打包 会删除/
如果不删除解压后会覆盖源文件
例如压缩了/etc/hosts 如果不删除/ 则解压后的路径/etc/hosts 覆盖原来的文件

[root@ahui ~]#tar zcvf hosts.tar.gz /etc/hosts
tar: Removing leading `/' from member names
/etc/hosts
[root@ahui ~]#
[root@ahui ~]#tar tf hosts.tar.gz 
etc/hosts

案例2: 不显示压缩过程

[root@ahui ~]#tar zcf all.tar.gz test test.txt
[root@ahui ~]#ll
total 8
-rw-r--r-- 1 root root 141 May 12 09:51 all.tar.gz

案例3: 同时打包多个文件 /etc/hosts /etc/passwd test.txt
[root@ahui ~]#tar zcvf all.tar.gz /etc/hosts /etc/passwd test.txt
tar: Removing leading `/' from member names
/etc/hosts
/etc/passwd
test.txt

案例4: 指定压缩包存放的位置 压缩后的文件放在/opt目录

[root@ahui ~]#tar zcvf /opt/all.tar.gz /etc/hosts /etc/passwd test.txt
tar: Removing leading `/' from member names
/etc/hosts
/etc/passwd
test.txt
[root@ahui ~]#ll /opt/
-rw-r--r-- 1 root root      808 May 12 09:55 all.tar.gz

案例5: 解压压缩包使用xf

[root@ahui /opt]#tar xf all.tar.gz 
[root@ahui /opt]#ll
total 4
-rw-r--r-- 1 root root 808 May 12 09:55 all.tar.gz
drwxr-xr-x 2 root root  33 May 12 09:57 etc
-rw-r--r-- 1 root root   0 May 12 09:07 test.txt
[root@ahui /opt]#ll etc/
total 8
-rw-r--r-- 1 root root  158 Jun  7  2013 hosts
-rw-r--r-- 1 root root 1368 Nov 30 20:57 passwd

注意: 解压结果默认是解压到当前的所在路径 而不是压缩包所在的位置/opt

[root@ahui ~]#tar xf /opt/all.tar.gz 
[root@ahui ~]#ll
total 0
drwxr-xr-x 2 root root 33 May 12 09:58 etc
-rw-r--r-- 1 root root  0 May 12 09:07 test.txt

案例6: 指定解压到固定的目录

将all.tar.gz 解压后的结果放到/opt目录 使用-C 指定

[root@ahui ~]#tar xf all.tar.gz -C /opt/
[root@ahui ~]#ll
total 4
-rw-r--r-- 1 root root 808 May 12 09:55 all.tar.gz
[root@ahui ~]#ll /opt/
total 0
drwxr-xr-x 2 root root 33 May 12 10:00 etc
-rw-r--r-- 1 root root  0 May 12 09:07 test.txt

案例7: 查看压缩包里的内容

使用-tf参数查看

[root@ahui ~]#tar tf all.tar.gz 
etc/services

案例8: 排除压缩某个文件 exclude

[root@ahui ~]#mkdir ahui
[root@ahui ~]#cd ahui/
[root@ahui ~/ahui]#ll
total 0
[root@ahui ~/ahui]#touch {1..3}.txt
[root@ahui ~/ahui]#ll
total 0
-rw-r--r-- 1 root root 0 May 12 10:07 1.txt
-rw-r--r-- 1 root root 0 May 12 10:07 2.txt
-rw-r--r-- 1 root root 0 May 12 10:07 3.txt

压缩当前目录所有的.txt 文件

[root@ahui ~/ahui]#tar zcvf all.tar.gz ./*
./1.txt
./2.txt
./3.txt

压缩所有的.txt 只排除3.txt

[root@ahui ~/ahui]#tar zcvf exclude.tar.gz ./* --exclude=1.txt
./2.txt
./3.txt
[root@ahui ~/ahui]#tar tf exclude.tar.gz 
./2.txt
./3.txt

排除多个文件

[root@ahui ~/ahui]#tar zcvf exclude.tar.gz ./* --exclude=1.txt --exclude=2.txt
./3.txt

排除的多个文件名称可以写入到一个文件中 然后排除这个文件中的所有

[root@ahui ~/ahui]#cat file.txt
1.txt
2.txt

[root@ahui ~/ahui]#echo -e "1.txt\n2.txt" > file.txt
[root@ahui ~/ahui]#cat file.txt 
1.txt
2.txt

[root@ahui ~/ahui]#cat file.txt
1.txt
2.txt
[root@ahui ~/ahui]#tar zcvf all.tar.gz ./* --exclude-from=file.txt
./3.txt
./file.txt
[root@ahui ~/ahui]#tar tf all.tar.gz 
./3.txt
./file.txt

文件属性(2) 文件权限、selinux相关 .

16819633 -  rw-r--r--  .    1  root root 158 6月   7 2013 /etc/hosts
-------- -  ---------  -    -  ---- ---- --- ------------ -----------
   1     2     3       4    5   6    7    8        9          10

第三列:文件权限

作用: 决定了当前登陆用户对当前文件的权限
rw-r–r-- # 9位权限 三位为一组
rw- # 第一组权限位
r-- # 第二组权限位
r-- # 第三组权限位

r # read 读取文件 cat less more vim
w # write 写入文件 vim cat sed
x # excute 可执行文件 针对脚本(文件中是可执行命令而不是普通的字符)
- # 表示没有权限

第一组权限位: 前三位 rw-
特点:
1)表示属主 文件的主人 谁创建的这个文件
2)创建这个文件的主人对这个文件拥有什么权限(默认拥有rw权限)
3)笔记本属于张三的 张三对这个笔记本拥有的就是rw权限
4)主人对这个文件拥有rw-权限

第二组权限位: 中间三位 r–
特点:
1)表示属组权限位 组内的成员对这个文件拥有的权限
2)张三的家人对这个笔记本拥有r权限 只读
3)小组成员对这个文件 只能查看 r权限

第三组权限位: 后三位 r–
特点:
1)表示其他用户的权限位 陌生人对这个文件拥有的权限
陌生人指的是 不是这个文件的主人 也没有在这个组内
2)老王对这个笔记本拥有只能查看 r权限

对于普通文件最高的权限就是rw 可读 可写
九位权限位:
rw-r–r–
rw- # 文件主人对文件拥有最高权限 可读 可写
r-- # 小组成员只能查看
r-- # 其他用户只能查看

rwx对应的数字来表示权限:

r read----> 4表示
w write—> 2表示
x excute–> 1表示

rw-r–r-- 使用数字表示 将每三位进行相加 等于 644权限
rw- ==== r(4)w(2)-(0) ======= 6
r-- ==== r(4)-(0)-(0) ======= 4
r-- ==== r(4)-(0)-(0) ======= 4

如果数字权限是755 则对应的字母权限位置 相减
rwxr-xr-x

第四列 . selinux相关

开启了selinux防火墙后生成的.
关闭selinux后创建的文件 就没有.

硬链接 软链接

硬链接:

硬链接的特点:

  1. 在同一个文件系统中有相同的inode号的文件互为硬链接 使用ll -i查看inode号
  2. 硬链接相当于文件有多个入口 类似超市的多个门
  3. 相当于复制了多个inode号码 多张藏宝图
  4. 文件默认1个硬链接
  5. 目录默认有2个硬链接
  6. 只能在相同的分区内进行创建
  7. 不能对目录进行创建硬链接 只能文件
  8. 删除任意一个硬链接不影响其他的相同inode的文件
  9. 可以在任意一个入口进入到文件中 如果修改文件 查看每个文件都会发生变化
  10. 硬链接数0 才真正的被删除 删除所有相同的inode号 文件才真正的被删除

创建硬链接:

ln 源文件 目标文件

[root@ahui ~]#ln 1.txt hard_link.txt
[root@ahui ~]#ll
total 0
-rw-r--r-- 2 root root 0 May 12 11:00 1.txt
-rw-r--r-- 2 root root 0 May 12 11:00 hard_link.txt
[root@ahui ~]#ll -i
total 0
33588705 -rw-r--r-- 2 root root 0 May 12 11:00 1.txt
33588705 -rw-r--r-- 2 root root 0 May 12 11:00 hard_link.txt


[root@ahui ~]#echo hehe > 1.txt 
[root@ahui ~]#ll -i
total 8
33588705 -rw-r--r-- 2 root root 5 May 12 11:04 1.txt
33588705 -rw-r--r-- 2 root root 5 May 12 11:04 hard_link.txt
[root@ahui ~]#cat 1.txt 
hehe
[root@ahui ~]#cat hard_link.txt 
hehe

目录默认有2个硬链接

[root@ahui ~]#ll -id ahui/
33588707 drwxr-xr-x 2 root root 6 May 12 11:05 ahui/
[root@ahui ~]#cd ahui/
[root@ahui ~/ahui]#ll -ia
total 0
33588707 drwxr-xr-x  2 root root   6 May 12 11:05 .

硬链接作用:

提高系统文件的安全性 在企业中用的很少
把重要文件做硬链接
只要/etc/passwd中内发发生变化 家目录下的passwd也会变化
如果/etc/passwd 文件被删除 可以将家目录下的passwd做硬链接到/etc/passwd

[root@ahui ~]#ln /etc/passwd passwd
[root@ahui ~]#ll
total 8
-rw-r--r-- 1 root root   11 May 12 11:09 hard_link.txt
drwxr-xr-x 2 root root    6 May 12 11:05 ahui
-rw-r--r-- 2 root root 1368 Nov 30 20:57 passwd

[root@ahui ~]#ll -id ahui/
33588707 drwxr-xr-x 3 root root 18 May 12 11:17 ahui/
[root@ahui ~]#cd ahui/
[root@ahui ~/ahui]#ll -ia
total 0
33588707 drwxr-xr-x  3 root root  18 May 12 11:17 .
33574977 dr-xr-x---. 4 root root 239 May 12 11:14 ..
51001248 drwxr-xr-x  2 root root   6 May 12 11:17 test
[root@ahui ~/ahui]#cd test/
[root@ahui ~/ahui/test]#ll -ia
total 0
51001248 drwxr-xr-x 2 root root  6 May 12 11:17 .
33588707 drwxr-xr-x 3 root root 18 May 12 11:17 ..

软链接:

软连接的特点:

  1. 软链接的inode号不同
  2. 类似windows的快捷方式
  3. 软链接文件中存放这是源文件的指针 指向源文件的位置
  4. 删除软链接不影响源文件 类似删除windows的快捷方式
  5. 删除源文件 软链接文件不能用 红底白字闪烁
  6. 创建软链接 ln -s
  7. 文件和目录可以做软链接 可以跨文件系统做软链接

创建软链接:

ln -s 源文件 链接文件
[root@ahui ~]#cat test.txt 
hehe
[root@ahui ~]#ln -s test.txt s.txt
[root@ahui ~]#ll
total 4
drwxr-xr-x 3 root root 18 May 12 11:17 ahui
lrwxrwxrwx 1 root root  8 May 12 11:24 s.txt -> test.txt
-rw-r--r-- 1 root root  5 May 12 11:24 test.txt

软链接作用:

企业常用
1.可以利用软链接跨文件系统的方式处理磁盘不够用问题
在这里插入图片描述

2.可以利用软链接做代码上线 代码回滚等

软链接和硬链接的区别

  1. 在linux系统中链接分区两种 一种硬链接 一种是软链接

  2. 创建方式不同 硬链接使用 ln创建 软链接使用ln -s 创建

  3. 软链接的inode号不同,硬连接inode号相同

  4. 目录不能做硬链接 文件和目录和做软链接

  5. 删除硬链接不影响源文件,删除软链接的链接文件不影响源文件,删除软链接的源文件软链接失效

  6. 软链接可以跨文件系统 硬链接不可以跨文件系统

  7. 同时删除源文件和硬链接文件 才真正的被删除(没有被进程调用)

  8. 软链接在工作中常用 硬链接不常用

     注意: 做软链接尽量使用绝对路径
    

文件时间

stat查看文件详细属性

[root@ahui ~]#stat /etc/hosts
  File: ‘/etc/hosts’
  Size: 158       	Blocks: 8          IO Block: 4096   regular file
	Device: 803h/2051d	Inode: 16819633    Links: 1
	Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
	Access: 2022-05-12 09:13:01.708386201 +0800		# 访问时间 cat less 
	Modify: 2013-06-07 22:31:32.000000000 +0800		# 修改时间 vim 
	Change: 2020-08-28 11:04:35.586905128 +0800		# 属性修改时间

第一个:访问时间:

只有在第一次修改后第一次查看时间会发生变化
如果不修改文件 后面查看时间不变

  [root@ahui ~]#cat test.txt 
	ahui
	[root@ahui ~]#stat test.txt
	  File: ‘test.txt’
	  Size: 7         	Blocks: 8          IO Block: 4096   regular file
	Device: 803h/2051d	Inode: 33588713    Links: 1
	Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
	Access: 2022-05-12 12:04:15.321677944 +0800

第二个:修改时间:

如果使用vim 三个时间都会变化
使用echo测试

   [root@ahui ~]#stat test.txt 
    File: ‘test.txt’
    Size: 12        	Blocks: 8          IO Block: 4096   regular file
	Device: 803h/2051d	Inode: 33588714    Links: 1
	Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
	Access: 2022-05-12 12:06:10.353673985 +0800
	Modify: 2022-05-12 12:06:10.353673985 +0800
	Change: 2022-05-12 12:06:10.354674485 +0800
	 Birth: -
	[root@ahui ~]#echo hehe >> test.txt 
	[root@ahui ~]#stat test.txt 
	  File: ‘test.txt’
	  Size: 17        	Blocks: 8          IO Block: 4096   regular file
	Device: 803h/2051d	Inode: 33588714    Links: 1
	Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
	Access: 2022-05-12 12:06:10.353673985 +0800
	Modify: 2022-05-12 12:07:09.796945181 +0800
	Change: 2022-05-12 12:07:09.796945181 +0800

第三个:属性修改时间:

  [root@ahui ~]#chmod +x test.txt 
	[root@ahui ~]#ll
	total 4
	drwxr-xr-x 3 root root 18 May 12 11:17 ahui
	-rwxr-xr-x 1 root root 17 May 12 12:07 test.txt
	[root@ahui ~]#stat test.txt 
	  File: ‘test.txt’
	  Size: 17        	Blocks: 8          IO Block: 4096   regular file
	Device: 803h/2051d	Inode: 33588714    Links: 1
	Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
	Access: 2022-05-12 12:06:10.353673985 +0800
	Modify: 2022-05-12 12:07:09.796945181 +0800
	Change: 2022-05-12 12:08:54.748001786 +0800

find按照时间进行查找文件:

-mtime 修改时间
-atime 访问时间
-ctime 属性修改时间

#查找7天前被修改的文件和目录
find ./ -mtime +7

#查找7天以内被修改的文件和目录
find ./ -mtime -7


-mtime 0 表示最近24小时修改的文件
-mtime 1 表示一天前修改的文件
-mtime +1表示修改时间大于1天前
-mtime -1表示修改时间小于1天

案例:查找/data目录下文件修改时间30天前的 并且删除 或者备份

find /data -type f -mtime +30|xargs rm
find /data -type f -mtime +30|xargs tar zcvf backup.tar.gz

扩展:

xagrs

xargs 可以将前面的执行结果放在命令的最后面
xargs 可以格式化输出内容 可以按照n列进行显示内容

[root@ahui ~]#echo {1..20}|xargs -n7
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20

查看系统inode号:

每个文件最少占用1个inode和1个block硬件存储快
df -i 查看系统所有的inode号

[root@ahui ~]#df -i	
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda3      9858560 69968 9788592    1% /

企业案例: 通过inode查找特殊符号的文件(在工作中遇到会解决)

[root@ahui ~]#ll -i
total 0
33603850 -rw-r--r-- 1 root root 0 May 13 14:29 !-&.txt
[root@ahui ~]#find ./ -type f -inum 33603850
./!-&.txt
[root@ahui ~]#find ./ -type f -inum 33603850|xargs rm

小结:

1.特殊符号; && ||

  • ; 命令分隔符
  • && 与 前面的命令执行成功 才执行&& 后面的命令
  • || 或 前面的命令执行失败 才执行||后面的命令
  1. 文件属性(2) 文件权限、selinux相关 .
  • rwx含义
  • selinux生成属性 .
  1. 文件打包压缩: tar
    参数:
    - z # 使用gzip方式进行压缩
    - c # 使用create创建压缩包
    - v # 显示压缩的过程 verbose 可以省略
    - f # 指定文件
    - x # 表示解压 使用xf进行解压
    - t # 查看压缩的里面的文件名称 使用tf进行查看
    - C # 指定解压到哪个位置(默认解压到当前路径)
  • tar zcvf all.tar.gz file1 file2 相对路径 不会提示从成员中删除/跟目录
  • 打包文件放在指定的路径 tar zcvf /opt/all.tar.gz file1 file2
  • 解压 tar xf all.tar.gz
  • 指定解压的位置 tar xf all.tar.gz -C /opt
  • 查看压缩包 tar tf all.tar.gz
  1. 硬链接 软链接特点与区别
  2. 文件时间:
    1. 修改时间
    2. 访问时间
    3. 属性修改时间
  3. find 按照时间查找
    • -mtime______修改时间
    • -atime_______访问时间
    • -ctime_______属性修改时间
    • +n__________表示修改时间大于n天前
    • -n__________表示修改时间小于n天
    • 0___________表示最近24小时修改的文件
    • n___________表示n天前修改的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值