day11 linux文件之查找、打包、壓縮、管道


溫故知新

1關閉selinux的方式

•     臨時關閉 setenforce 0

•     永久關閉 vim /etc/selinux/config

2.關閉firewalld的幾種方式

  systemctl stop firewalld

  systemctl disable --now firewalld

3.設置系統編碼的方式

LANG=zh_CN.UTF-8

vim /etc/locole.conf

localectl set-locale en_US.utf-8(推薦)

4.用戶登錄系統的方式

  ssh test@192.168.15.200

 su test

su -test

5.查看當前用戶的命令

  sh-4.2# whoami
  root

6.設置密碼的方式

  passwd test

  echo 123456 | passwd --stdin test

7.查看selinux的狀態和firewalld的狀態

•     getenforce

•     systemctl status firewalld

今日內容

1.查找文件——find命令

在linux系統中,按照我們的要求去查找文件,如按創建的日期查找文件,查詢出所有的目錄或文件夾,查詢出權限為644的文件,查詢出屬主為test的文件,我們需要用到find命令.
1.格式:find [查詢的路徑] [匹配模式] [匹配規則]
2.匹配模式:
   -name:按名字去匹配
            *:匹配任意數量的任意字符(匹配零個或多個任意字符)
            ?:匹配任意一個字符
   -type:按照文件的類型匹配
          常見的文件類型:
              f:普通文件
              d:普通文件夾
              b:塊設備文件
              c:字符設備文件
              s:socket文件
              l:鏈接文件
   -perm :按文件的權限來查詢
          常見的文件權限:755:文件夾的默認權限
                         644:文件的默認權限
    -user:按照文件的屬主來查詢
    -nouser:查詢用戶被刪除了的文件
    -group:按照文件的屬組來查詢
    -nogroup:查詢沒有屬組的文件
          知識儲備:刪除用戶:userdel
                    刪除用戶組:groupdel
    -size:按照文件的大小來查詢
        + 查詢超過n的文件
        - 查詢小於n的文件
        知識儲備:stat:查看文件的各種時間
    -mtime:按照修改文件的時間來查詢
    -ctime:按照文件的創建時間來查詢
    -atime:按照訪問時間來查詢文件
    -a(默認):並且(and)
    -o:或者(or)
    -exec(xargs):處理匹配之后的內容
   

案例:

案例1:查詢出/etc目錄下的hosts文件 
[root@localhost ~]# find /etc -name "hosts"

案例2:查詢出/etc目錄下的以ifcfg開頭的文件
[root@localhost ~]# find /etc/ -name "ifcfg*"

案例3:查詢出/etc目錄下以.conf結尾的文件

[root@localhost ~]# find /etc/ -name "*.conf"

案例4:查詢出/etc目錄下,文件名中包含host的文件有哪些

[root@localhost ~]# find /etc/ -name "*host*"

案例5:查詢出/etc目錄下,所有的普通文件。

[root@localhost ~]# find /etc/ -type f

案例6:查詢出/etc目錄下,所有的文件夾

[root@localhost ~]# find /etc/ -type d

案例7:查詢出/dev/目錄中的所有的塊設備文件

[root@localhost ~]# find /dev/ -type b

案例8:查詢出/dev目錄中所有的字符設備文件

[root@localhost ~]# find /dev/ -type c

案例9:查詢出/etc目錄中文件名包含nginx的普通文件

[root@localhost ~]# find /etc/ -name "*nginx*" -type f

案例10:查詢出/root目錄下,權限為755的文件

[root@localhost ~]# find /root/ -perm 755

案例11:查詢出屬主為test01的文件

[root@localhost ~]# find /root/ -user test01

案例12:查詢屬主被刪除了的文件

[root@localhost ~]# find /root/ -nouser

案例13:查詢屬組為test的文件

[root@localhost ~]# find /root/ -group test

案例14:查詢屬組被刪除了的文件
[root@localhost ~]# find /root/ -nogroup

案例15:查詢2天以前修改過的文件

[root@localhost ~]# find /root/ -mtime +2

案例16:查詢2天以內創建的文件

[root@localhost ~]# find /root/ -ctime -2

案例17:查詢2天以內訪問過的文件

[root@localhost ~]# find /root/ -atime -2

案例18:查詢大於1M的文件

[root@localhost ~]# find /root/ -size +1M

案例19:查詢小於1M的文件

[root@localhost ~]# find /root/ -size -1M

案例20:查詢在3天以內創建的文件,並刪除

[root@localhost tmp]# find /tmp/ -ctime -3 -type f -exec rm -rf {} \;

-exec : 處理查詢之后的內容
{} : 代表的是查詢到的內容、
\; : 固定搭配

知識儲備:
xargs :將所有的內容格式化成一行,我們可以通過管道或標准輸入給命令傳遞參數,但這意味着給命令的參數可能包含換行,而有些命令是不能接受換行的,所以可以通過xargs將參數過濾,將換行換成空格

[root@localhost tmp]# find /tmp/ -ctime -3 -type f | xargs -I {} rm -rf {}

練習1:要求將所有3天前創建的普通文件加上.bak后綴

[root@localhost tmp]# find /tmp -ctime -3 -type f -exec mv {} {}.bak \;

[root@localhost tmp]# find /tmp/ -type f -ctime -3 | xargs -I {} mv {} {}.bak

linux系統壓縮包

gzip :壓縮軟件,將文件做成一個壓縮包,會刪除原來的文件,生成一個新的壓縮包文件
    格式:
          壓縮:gzip [文件路徑]
          解壓:gzip -d [壓縮包路徑]
      缺陷:
          gzip不能壓縮目錄
bzip:壓縮軟件,將文件做成一個壓縮包,會刪除原來的文件,生成一個新的壓縮包文件
    格式:
        壓縮:bzip2 [文件路徑]
        解壓:bzip2 -d [壓縮包路徑]
      缺陷:
          bzip2不能壓縮目錄
      gzip比bzip2壓縮率更大
tar:打包文件,不會刪除原文件,可以打包目錄;tar命令是可以跟gzip或bzip2共同使用的
    格式:tar [參數] 壓縮包的名稱
    tar -c -f chaoge.txt.tar chaoge.txt
    tar -c -j -f chaoge.txt.tar.bz2 chaoge.txt
    參數:
        -f:指定壓縮包的名稱
        -c(小):打包文件
        -z:指定使用gzip壓縮,一般使用gzip壓縮的文件都以.tar.gz作為擴展名
        -j: 指定使用bzip2壓縮,一般使用bzip2壓縮的文件都以.tar.bz2作為擴展名
        -v:顯示壓縮包壓縮的過程
        -x:解壓,不需要指定壓縮包的壓縮類型,他會自動匹配壓縮包的內省自行解壓
        -P(大寫):當壓縮包中存在根目錄時,自動移除根目錄
        -t:查看壓縮包中的內容
-C(大) : 解壓至
       
      練習:將/etc目錄中的所有的普通文件壓縮成/tmp/etc.tar.gz文件
          tar -czvPf /tmp/etc.tar.gz $(find /etc/ -type f | xargs)
          知識儲備:$():相當於數學中的括號,優先看括號中的內容 (1+2)*3
         
zip:
    安裝壓縮與解壓命令
yum -y install zip unzip
zip - package and compress (archive) files 壓縮文件或文件夾

壓縮
-r 選項指定你想遞歸地(recursively)包括所有包括在 filesdir 目錄中的文件
zip -r etc.zip /etc

解壓
unzip - list, test and extract compressed files in a ZIP archive 顯示、測試、解壓ZIP包
-v 顯示壓縮目錄內容,但是不解壓 unzip -v etc.zip
-t 檢查壓縮文件是否正確、完整,但是不解壓 unzip -t etc.zip
-l 列出壓縮文件內容,但是不解壓 unzip -l etc.zip

示例:
zip -r tmp.zip /tmp unzip tmp.zip
zip install.log.zip install.log unzip install.log.zip

linux中的管道

用於傳輸數據,可以將前一個命令的結果,交給管道之后的命令處理
格式:   |
案列1:刪除/tmp目錄下,一天以內創建的文件
     find /tmp/ -ctime -1 -type f | xargs -I {} rm -rf {}
案例2:將etc中所有的普通文件,復制到/tmp目錄中
      [root@localhost tmp]# find /etc/ -type f | xargs -I {} cp -r {} /tmp/




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM