find命令过滤 no such_运维老手常用的linux命令操作
運維離不開linux,linux離不開命令操作,熟悉一些好用的linux命令會極大的提升你的工作效率,命令之間靈活的搭配更是會爆發無窮的生產力
1·find命令
一般剛剛接觸linux的人可能僅僅只是把find命令當成了查找文件的命令,但是它的強大遠遠不止查找文件,舉例如下,批次見可以自由結合使用滿足不同使用場景
查找指定名字的文件或目錄
find ./ -name xxx.sh查找指定大小范圍的文件或目錄
find ./ -size +50k -a -size -2M (-a 是而且,-o是或者,-not 是相反)查找指定文件類型
find ./ -type f (普通文件f 文件夾文件d 符號文件l 字符設備c 塊設備b等)查找指定修改時間的文件或目錄
方式1:
【 -atime 訪問時間(天) 】【 -ctime 改變狀態的時間(天) 】 【 -mtime 修改的時間(天) 】【 -amin 訪問時間(分鐘) 】【 -cmin 改變狀態的時間(分鐘) 】 【 -mmin 修改的時間(分鐘) 】
find ./ -mtime +1 -a mtime -3 (修改時大于1天,小于3天)find ./ -mmin +1 -a mmin -3 (修改時大于1分鐘,小于3分鐘)
方式2:
-newerXY,用于所尋找的文件的時間戳 X 比參照文件的時間戳 Y 更新一些的文件,X 和 Y 可選參數:【a: 參照文件的訪問時間 】【B: 參照文件的創建時間】【c:參照文件的 inode 狀態改變時間【 m:參照文件的修改時間】【t:直接指定一個絕對時間】
find ./ -newermt '2020-12-02' (修改時間小于2020-12-02的文件或目錄)查找到文件后做出對應操作
-delete 【刪除查找到的文件】
find ./ -name xx.sh -delete
-exec 命令 {} ; 【執行命令(當前目錄下執行)】
find ./ -name README.txt -exec ls {} ;find / -name 10086.txt -exec cat {} ;
-ok 命令 {} ; 【 執行命令,執行前會詢問(當前目錄下執行)】
find ./ -name README.txt -ok ls {} ;find / -name 10086.txt -ok cat {} ;
-execdir 命令 {} ; 【執行命令(在查找到的文件或目錄所在目錄下執行)】
find / -name 10086.txt -execdir pwd ;-ok 命令 {} ; 【執行命令,執行前會詢問(在查找到的文件或目錄所在目錄下執行)】
find / -name 10086.txt -okdir pwd ;2·xargs命令
xargs命令是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具??梢詫⒐艿阑驑藴瘦斎?#xff08;stdin)數據轉換成命令行參數,也能夠從文件的輸出中讀取數據。一般是和管道一起使用。
這里只講我認為最強大的 -I 或者是-i 參數的功能(根據自己的linux),別的使用我這里不講,因為我覺得不是最重要的功能
這里簡單舉例和find和awk的搭配,能搭配的命令那是千變萬化的
命令格式: xargs -I {} 命令{}
-I參數和find搭配
find / -name 10086.txt | xargs -I {} cat {}-I參數和awk搭配
ll |awk '{print $9}' |xargs -I {} mv {} {}_bak-d和-n參數
xargs默認的命令就是echo,-d可以指定分割符,-n可以指定一次輸出的數量
3·awk和sort命令
awk命令這里就不詳細介紹,簡單的舉幾個使用的例子,具體的awk使用介紹可以看我的這篇文章 https://wangxiaolong.blog.csdn.net/article/details/107094812
sort命令都是和別的命令搭配使用的,往往是別的命令完成數據的統計,sort命令則對統計出來的數據信息做一個排序,這里簡單舉例和awk的搭配,和別的命令搭配也是類似
sort常用參數:【-k 指定用第幾列配許】【-n 按照數值大小排序】【-r 以從大到小的順序排序】【d 排序時,處理英文字母、數字及空格字符外,忽略其他的字符。】
舉例:a.acc日志格式如下:
100.120.239.186 - - [15/Mar/2020:11:12:40 +0800] "HEAD / HTTP/1.0" 200 273 "-" "-"統計各個IP的訪問量,并排序
awk '{a[$1]++}END{for(i in a) print i,a[i] }' a.acc | sort -n -r -k統計200狀態的各個IP的訪問量,并排序
awk '$9==200{a[$1]++}END{for(i in a) print i,a[i] }' a.acc | sort -n -r -k 2統計5-10行區間內 各個IP的訪問量,并排序
awk '{if(NR>=5&&NR<=10)a[$1]++}END{for(i in a)print i,a[i]}' a.acc | sort -n -r -k 2總結
以上是生活随笔為你收集整理的find命令过滤 no such_运维老手常用的linux命令操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真的来了 微软又一个重要办公软件落地国内
- 下一篇: python linux 优化_Pyth