当前位置:   article > 正文

文件查找与打包压缩_package包里面的pvcreate在哪里

package包里面的pvcreate在哪里

目录

一、find详解:文件查找,针对文件名

1.1find 使用-exec

1.2find 使用xargs

-exec和xargs的区别

1.1 按文件名

1.2按文件大小 -size

1.3按时间查找

1.4按文件类型查找

 1.5按文件权限

回顾---设置特殊权限

二、打包压缩

2.1 打包 解包

2.2 压缩 、解压缩 ------gzip bzip2

2.3打包压缩一起

2.4解压解包时一起

扩展-- -- 按时间创建目录或者文件

三、链接文件

3.1硬链接

3.2软链接

扩展

软链接 和 硬链接 的区别


grep :文件内容过滤  (过滤文件信息的)

[root@localhost ~]# grep 'file'  /etc/passwd

查找命令------用(which)查看该命令的位置

  1. [root@localhost ~]# which pvcreate /usr/sbin/pvcreate
  2. [root@localhost ~]# which df /usr/bin/df

查询命令和该命令对应的配置文件的位置

  1. [root@localhost ~]# whereis df df: /usr/bin/df /usr/share/man/man1/df.1.gz
  2. [root@localhost ~]# whereis pvcreate
  3. pvcreate: /usr/sbin/pvcreate /usr/share/man/man8/pvcreate.8.gz
  4. [root@localhost ~]# whereis lsblk
  5. lsblk: /usr/bin/lsblk /usr/share/man/man8/lsblk.8.gz

一、find详解:文件查找,针对文件名

1.1find 使用-exec

#find 路径 条件 跟条件相关的操作符 [-exec 动作]

-exec:参数是一个一个传递的,传递一个参数执行一次命令。

  1. [root@localhost ~]# find /etc/ -name "ifcfg*"
  2. /etc/sysconfig/network-scripts/ifcfg-lo
  3. /etc/sysconfig/network-scripts/ifcfg-ens33
  4. [root@localhost ~]# find /etc/ -name "ifcfg*" -exec cp -rf {} /root/linshi \;
  5. [root@localhost ~]# ls linshi
  6. ifcfg-ens33 ifcfg-lo i.sh
  1. [root@localhost ~]# find . -name "i.sh" -exec cp -rf {} /root/linshi \; #(查找当前目录下的i.sh 并且复制到/root/linshi -------> 很多文件要用通配符*)# {} 为前面查找到的内容 \; 格式
  2. [root@localhost ~]# ls linshi/
  3. h.sh ifcfg-ens33 ifcfg-lo i.sh li.sh shi.sh

1.2find 使用xargs

#find 路径 -name "xxxx" | xargs -i cp {} /tmp

xargs :将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。

  1. [root@localhost ~]# find /root/ -name "i.sh" | xargs -i cp {} /root/linshi
  2. [root@localhost ~]# ls linshi
  3. i.sh

-exec和xargs的区别

1、exec没处理一个文件或者目录,它都需要启动一次命令,作为它的参数转换成下一个命令的参数列表

2、exec格式麻烦 必须用{} 做文件的代位符,必须用\ 来转义。作为命令的结束符,书写不便

3、xargs不能操作文件名有空格的文件

综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,那么使用xargs 比较方便,否则,就要用exec。

1.1 按文件名
 

  1. [root@localhost ~]# find / -name "file" (从根开始找文件)
  2. /usr/bin/file
  3. /usr/share/file
  4. [root@localhost ~]# find / -name "ifcfg-ens33" (以名字的方式查找)
  5. /etc/sysconfig/network-scripts/ifcfg-ens33
  6. /root/linshi/ifcfg-ens33
  7. [root@localhost ~]# find / -iname "ifcFG-ens33" (-i忽略大小写)
  8. /etc/sysconfig/network-scripts/ifcfg-ens33
  9. /root/linshi/ifcfg-ens33
  10. [root@localhost ~]# find / -iname "*.sh" ( *表示所有字符)
  11. /boot/grub2/i386-pc/modinfo.sh
  12. /etc/dhcp/dhclient-exit-hooks.d/azure-cloud.sh
  13. /etc/dhcp/dhclient.d/chrony.sh
  14. /etc/profile.d/colorgrep.sh

1.2按文件大小 -size

  1. find /etc -size +5M ---------->查找大于5M
  2. find /etc -size -1M ---------->小于1M
  3. find /etc -size 5M ---------->等于5M
  4. find / -size +5M -a -size -7M ---------->(-a :add 交集)查找/ 下大于5M 小于7M的文件
  5. find / -size +5M -o -size -6M ---------->(-o :or 并集)查找/ 下大于5M 且小于6M
  6. find / -size -2M -a -name "*.sh" ---------->查找/ 小于2M 且带有 .sh 的的文件

1.3按时间查找

按时间查找(atime,mtime,ctime)

-atime= access访问时间

-mtime= modify改变时间 内容修改时间会改变

-ctime= change 修改时间 属性修改时间会改变 (一般与mtime 息息相关)

-amin 分钟

-mtime

-ctime

[root@localhost ~]# stat i.sh
  文件:"i.sh"
  大小:16              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:39007279    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2022-08-13 10:07:01.143277832 +0800
最近更改:2022-08-10 13:10:30.000000000 +0800
最近改动:2022-08-10 13:13:20.283431357 +0800
[root@localhost ~]# vim i.sh
[root@localhost ~]# stat i.sh
  文件:"i.sh"
  大小:16              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:33614250    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2022-08-13 11:11:17.500303619 +0800
[root@localhost ~]# find ./i.sh -atime -2    (访问时间两天内)
./i.sh

[root@localhost ~]# echo "章鱼小丸子"  >> i.sh
[root@localhost ~]# find ./i.sh  -ctime -3    (修改时间 3天内)
./i.sh
[root@localhost ~]# find ./i.sh  -ctime +3
[root@localhost ~]# find ./i.sh  -mtime -3
./i.sh
[root@localhost ~]# stat i.sh
  文件:"i.sh"
  大小:32              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:33614250    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2022-08-13 11:11:17.500303619 +0800
最近更改:2022-08-13 11:15:09.055815171 +0800
最近改动:2022-08-13 11:15:09.055815171 +0800
创建时间:-
find . -amin +1 (访问时间一分钟前)
find . -amin -1 (访问时间一分钟内)

1.4按文件类型查找

-type f ------->f 普通文件

-type d ------->d 目录

-type l ------->l 链接

-type b ------->b 块设备

  1. [root@localhost ~]# find /tmp -type f
  2. /tmp/yum.log
  3. /tmp/tom.txt
  4. /tmp/yum_save_tx.2022-08-09.19-07.46Cgs5.yumtx
  5. [root@localhost ~]# find /tmp -type f -a -name "*.txt"
  6. /tmp/tom.txt
  7. [root@localhost ~]# find /dev -type d -size +5M -o -name "*.conf"
  8. [root@localhost ~]# find /etc/ -type d -name "*.conf.d"
  9. /etc/dracut.conf.d
  10. /etc/X11/xorg.conf.d
  11. /etc/prelink.conf.d
  12. /etc/ld.so.conf.d
  13. /etc/polkit-1/localauthority.conf.d
  14. /etc/krb5.conf.d
  15. [root@localhost ~]# find /etc -type l
  16. [root@localhost ~]# find /dev -type b

 1.5按文件权限

[root@localhost ~]# find . -perm 755 ------>查找当前目录 精确查找755

[root@localhost ~]# find /usr/bin -perm -4000 ------>精确查找 包含suid

[root@localhost ~]# find /usr/bin -perm -2000 ------>包含sgid

[root@localhost ~]# find /usr/bin -perm -1000 ------>包含sticky

回顾---设置特殊权限

chmod u+s file -------> 普通用户通过suid 提权 针对文件

||

chmod 4777 file -------> 效果同上,数字不建议使用

  1. [root@localhost ~]# su - tuan
  2. 上一次登录:六 86 14:15:50 CST 2022pts/0
  3. [tuan@localhost ~]$ cat /root/i.sh
  4. cat: /root/i.sh: 权限不够
  5. [tuan@localhost ~]$ 登出
  6. [root@localhost ~]# which cat
  7. /usr/bin/cat
  8. [root@localhost ~]# chmod u+s /usr/bin/cat
  9. [root@localhost ~]# ls /usr/bin/cat
  10. /usr/bin/cat
  11. [root@localhost ~]# ll -d /usr/bin/cat
  12. -rwsr-xr-x. 1 root root 54080 116 2016 /usr/bin/cat
  13. [root@localhost ~]# su - tuan
  14. 上一次登录:六 813 14:06:12 CST 2022pts/0
  15. [tuan@localhost ~]$ cat /root/i.sh
  16. 一只三明治
  17. 章鱼小丸子
  18. [tuan@localhost ~]$ 登出
  19. [root@localhost ~]# chmod u-s /usr/bin/cat
  20. [root@localhost ~]# ll -d /usr/bin/cat
  21. -rwxr-xr-x. 1 root root 54080 116 2016 /usr/bin/cat

sgid 组继承 (2) 只能对目录设置获得该程序所属组用户的权限(如果对一个目录使用SGID 且用户在此目录拥有w 权限的话,使用者在此目录下建立新文件,则创建的这个文件的群组与此目录的群组相同)

chmod g+s dir ------->针对目录

||

chmod 2770 dir ------->同上

  1. [root@localhost ~]# ls
  2. anaconda-ks.cfg a.sh.tar nginx-1.16.0 swap.img
  3. a.sh i.sh nginx-1.16.0.tar.gz
  4. a.sh.bak linshi ntfs-3g-2016.2.22-3.el7.x86_64.rpm
  5. [root@localhost ~]# ll -d linshi (查看目录的权限)
  6. drwxr-xr-x 2 root root 53 813 10:21 linshi
  7. [root@localhost ~]# touch ./linshi/li.sh
  8. [root@localhost ~]# ll ./linshi/li.sh
  9. -rw-r--r-- 1 root root 0 813 14:22 ./linshi/li.sh
  10. [root@localhost ~]# chmod g+s ./linshi (组继承)
  11. [root@localhost ~]# ll -d ./linshi
  12. drwxr-sr-x 2 root root 66 813 14:22 ./linshi
  13. [root@localhost ~]# groupadd linshi (创建组)
  14. [root@localhost ~]# chown ,linshi ./linshi (注意属主和属组用.隔开 不是逗号)
  15. chown: 无效的用户: ",linshi"
  16. [root@localhost ~]# chown .linshi ./linshi (修改linshi目录的属组)
  17. [root@localhost ~]# ll -d ./linshi (查看)
  18. drwxr-sr-x 2 root linshi 66 813 14:22 ./linshi
  19. [root@localhost ~]# echo "冰可乐" >> ./linshi/shi.sh (在加了组继承目录下创建文件)
  20. [root@localhost ~]# ll ./linshi/shi.sh (查看属组)
  21. -rw-r--r-- 1 root linshi 10 813 14:27 ./linshi/shi.sh
  22. [tuan@localhost ~]$ touch /root/linshi/h.sh (这里从/root就进不去了)
  23. touch: 无法创建"/root/linshi/h.sh": 权限不够
  24. [tuan@localhost ~]$ 登出
  25. [root@localhost ~]# ll -d
  26. dr-xr-x---. 6 root root 4096 813 14:22 .
  27. [root@localhost ~]# chmod 557 . (修改root的权限)
  28. [root@localhost ~]# su - tuan
  29. 上一次登录:六 813 14:53:52 CST 2022pts/0
  30. [tuan@localhost ~]$ touch /root/linshi/h.sh
  31. [tuan@localhost ~]$ ll /root/linshi/h.sh
  32. -rw-rw-r-- 1 tuan linshi 0 813 14:55 /root/linshi/h.sh

sticky (1) t权限 权限控制 需要设置名单

这个就是针对others来设置的,SBIT目前只对目录有效,对目录的作用是:当用户在该目录i下建立文件或者目录时 ,仅有自己与root才有权力删除,T权限,只有该文件的对应属猪可以删还有root可以删除,更改属主

chmod o+t dir

||

chmod 1770 dir

  1. [root@localhost ~]# mkdir /opt/linshi1
  2. [root@localhost ~]# ll -d /opt
  3. drwxr-xr-x. 5 root root 48 813 15:02 /opt
  4. [root@localhost ~]# chmod o+w /opt (增加其他用户的写权限)
  5. [root@localhost ~]# ll -d /opt/linshi1/
  6. drwxr-xr-x 2 root root 6 813 15:02 /opt/linshi1/
  7. [root@localhost ~]# chmod o+w /opt/linshi1/
  8. [root@localhost ~]# chmod o+t /opt/linshi1/ (添加权限控制)
  9. [root@localhost ~]# ll -d /opt/linshi1/
  10. drwxr-xrwt 2 root root 6 813 15:02 /opt/linshi1/
  11. [root@localhost ~]# su - tom
  12. 上一次登录:六 86 16:59:20 CST 2022pts/0
  13. [tom@localhost ~]$ echo "冰块" >> /opt/linshi1/1.sh (使用tom用户在该目录下创建文件)
  14. [tom@localhost ~]$ ll /opt/linshi1/1.sh
  15. -rw-rw-r-- 1 tom tom 7 813 15:04 /opt/linshi1/1.sh
  16. [tom@localhost ~]$ 登出
  17. [root@localhost ~]# su - tuan
  18. 上一次登录:六 813 14:55:39 CST 2022pts/0
  19. [tuan@localhost ~]$ rm -rf /opt/1.sh
  20. [tuan@localhost ~]$ rm -rf /opt/linshi1/1.sh (切换tuan 删除tom 用户在该目录里创建的文件)
  21. rm: 无法删除"/opt/linshi1/1.sh": 不允许的操作
  22. [tuan@localhost ~]$ 登出
  23. [root@localhost ~]# chmod o-t /opt/linshi1 (取消)
  24. [root@localhost ~]# su - tuan
  25. 上一次登录:六 813 15:05:13 CST 2022pts/0
  26. [tuan@localhost ~]$ rm -rf /opt/linshi1/1.sh
  27. [tuan@localhost ~]$ ll /opt/linshi1/
  28. 总用量 0

二、打包压缩

Window打包压缩工具

结尾:.rar .zip

打包工具: winrar zip 7zip

linux打包压缩工具

结尾:.tar.gz .tar.bz2 .zip

工具:gzip 和tar(打包)

bzip2 (只压缩)

2.1 打包 解包

tar cvf xxx.tar 被打包的文件名 -------> c:创建 create v:详细信息verbose f: 文件file

tar xvf xxx.tar [-C /root/Desktop]-------> x :extract 解压缩 解包 -C: 指定解包路径

  1. [root@localhost ~]# tar cvf a.sh.tar a.sh (打包当前目录的a.sh并命名为 a.sh.tar
  2. a.sh
  3. [root@localhost ~]# ls
  4. anaconda-ks.cfg i.sh nginx-1.16.0.tar.gz
  5. a.sh linshi ntfs-3g-2016.2.22-3.el7.x86_64.rpm
  6. a.sh.tar nginx-1.16.0 swap.img
  7. [root@localhost ~]# cp a.sh ./a.sh.bak
  8. [root@localhost ~]# tar xvf a.sh.tar ./
  9. tar: .:归档中找不到
  10. tar: 由于前次错误,将以上次的错误状态退出
  11. [root@localhost ~]# tar xvf a.sh.tar (解包)
  12. a.sh
  13. [root@localhost ~]# tar xvf a.sh.tar -C /root/linshi (将a.sh包解压到指定目录 )
  14. a.sh
  15. [root@localhost ~]# ls /root/linshi
  16. a.sh

2.2 压缩 、解压缩 ------gzip bzip2

gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录里的所有文件

gzip 文件名 - -----------> 格式 file.gz 结尾

gzip -c 文件名 > /opt/文件名.gz ---------->压缩到指定位置

bzip2 源文件 ---------> 格式 file.bz2结尾

bzip2 需要安装 yum -y install bzip2

gunzip 压缩文件

bunzip2 压缩文件

gzip -d 压缩文件

bzip2 -d 压缩文件

-d :discompress 解压缩

2.3打包压缩一起

tar cvzf file.tar.gz 源文件 ----------> z: 表示gz压缩

tar cvjf file.tar.bz2 源文件 ---------->j: 表示bz2压缩

tar cvf file.tar.gz  /tmp/`date +%F-%X`  -etc.tar.gz  /etc/  #将打包的文件按放到/tmp目录下,并以当前时间开头命名

2.4解压解包时一起

tar xvzf 压缩文件 [-C 解压路径]

tar xvjf 压缩文件 [-C 解压路径]

扩展-- -- 按时间创建目录或者文件

# mkdir  `date  +%F`  -upload

#  touch file -`date  +%F`.txt

三、链接文件

软链接 或 符号链接 硬链接

3.1硬链接

一般情况下,文件名和inode号码是“一一对应”关系,每个 inode号码对应一个文件名。但是,Unix/Linux 系统允许,多个文件指向同一个 inode号码。

这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为“硬链接”(hard link)

  1. [root@localhost ~]# echo 煎饼果子 >> /root/linshi/file1
  2. [root@localhost ~]# ll -i /root/linshi/file1 (-i 显示inode编号)
  3. 50911993 -rw-r--r-- 1 root root 13 813 16:08 /root/linshi/file1
  4. [root@localhost ~]# ln /root/linshi/file1 /file1-h1 (做硬链接)
  5. [root@localhost ~]# ll -i /root/linshi/file1 /file1-h1
  6. 50911993 -rw-r--r-- 2 root root 13 813 16:08 /file1-h1
  7. 50911993 -rw-r--r-- 2 root root 13 813 16:08 /root/linshi/file1
  8. [root@localhost ~]# rm -rf /root/linshi/file1 (删除源文件)
  9. [root@localhost ~]# ll -i /file1-h1 (查看链接文件)
  10. 50911993 -rw-r--r-- 1 root root 13 813 16:08 /file1-h1
  11. [root@localhost ~]# cat /file1-h1
  12. 煎饼果子

运行上面这条命令以后,源文件与目标文件的inode 号码相同,都指向同一个 inode号。 inode信息中有一项叫做“链接数”,记录指向该 的文件名总数,这时候就会增加1。

反过来,删除一个文件名,就会使得 inode节点中的“链接数”减1。 当这个值减到0,表明没有文件名指向这个 inode ,系统就会回收这个 inode号码,以及其所对应的 block 区域。

3.2软链接

文件A和文件B 的 inode 号不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B 。因此,无论打哪个文件,最终读取的都是文件B。这时,文件A就称为文件B 的“软链接”(soft link)或者“符号链接”(symbolic link)

这意味着,文件A依赖于文件B 而存在,如果删了文件B,打开文件A就会报错:“no such file or directory” 。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode“链接数”不会因此发生变化。

ln -s 命令可以创建软链接

ln -s 源文件 链接文件

  1. [root@localhost ~]# echo 烤冷面 >> /root/linshi/file1
  2. [root@localhost ~]# ll -i /root/linshi/file1
  3. 50911993 -rw-r--r-- 1 root root 10 813 16:37 /root/linshi/file1
  4. [root@localhost ~]# ln -s /root/linshi/file1 /file1-l (将文件filel1 软链接 到file1-l)
  5. [root@localhost ~]# ll -i /root/linshi/file1 /file1-l (查看inode)
  6. 32440 lrwxrwxrwx 1 root root 18 813 16:39 /file1-l -> /root/linshi/file1
  7. 50911993 -rw-r--r-- 1 root root 10 813 16:37 /root/linshi/file1
  8. [root@localhost ~]# cat /file1-l
  9. 烤冷面
  10. [root@localhost ~]# rm -rf /file1-l (取消软链接)
  11. [root@localhost ~]# ln -s /root/linshi/file1 /file1-l
  12. [root@localhost ~]# rm -rf /root/linshi/file1 (删除源文件)
  13. [root@localhost ~]# ll /file1-l (已失效)
  14. lrwxrwxrwx 1 root root 18 813 16:47 /file1-l -> /root/linshi/file1
  15. [root@localhost ~]# rm -rf /file1-l

#给目录设置软链接必须是绝对路劲

  1. [root@qfedu.com ~]# ln -s /root/aaa/ /usr/bbb
  2. [root@qfedu.com ~]#ll /usr/bbb
  3. lrwxrwxrwx 1 root root 10 Dec 29 21:08 /usr/bbb -> /root/aaa/
  4. [root@qfedu.com ~]# rm -rf /usr/bbb #取消链接,

注意:删除目录链接时目录后面加“/”是删除目录,不加是删除链接

扩展

软链接 和 硬链接 的区别

  1. 软链接可以跨文件系统,硬链接不可以
  2. 软链接可以对目录进行链接,硬链接不可以
  3. 删除源文件之后,软链接失效,硬链接无影响
  4. 两种链接都可以通过命令 ln 来创建
  5. ln 默认创建的是硬链接
  6. 使用 -s 参数可以创建软链接

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/1000057
推荐阅读
相关标签
  

闽ICP备14008679号