日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

find命令详解

發布時間:2023/12/14 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 find命令详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

find參數

格式:find pathname -options [-print]命令字 路徑名稱 選項 輸出 pathname: find命令所查找的目錄路徑,不輸入代表當前目錄例如用 . 來表示當前目錄,用 / 來表示系統根目錄。 find命令選項: -name 按照文件名查找文件。 “名稱” -perm 按照文件權限來查找文件。666 777 等 -user 按照文件屬主來查找文件 -group 按照文件所屬的組來查找文件 -mtime -n / +n 按照文件的更改時間來查找文件,- n 表示文件更改時間距現在n天以內+ n 表示文件更改時間距現在n天以前 -type 查找某一類型的文件b - 塊設備文件d - 目錄c - 字符設備文件p - 管道文件l- 符號鏈接文件f - 普通文件 -size n 查找符合指定的文件大小的文件 -exec 對匹配的文件執行該參數所給出的其他linux命令, 相應命令的形式為' 命令 {} \;, 注意{ }和 \;之間的空格,{}代表查到的內容

find命令的8大實例

例1:查看當前目錄下所有的TXT格式的文件 [root@break test]# find . -name "*.txt" ./a.txt ./b.txt ./c.txt ./1.txt ./3.txt ./4.txt ./12.txt ./a.txt 2、按照更改時間或訪問時間等查找文件 如果希望按照更改時間來查找文件,可以使用mtime,atime或ctime選項mtime: 文件最后一次修改的時間atime: 最后一次訪問時間ctime: 文件的最后一次變化時間,也就是修改時間 例1:希望在root目錄下查找更改時間在1天以內,被黑客修改的文件 [root@break test]# find / -mtime 1 find: ‘/proc/2431/task/2431/fd/5’: 沒有那個文件或目錄 find: ‘/proc/2431/task/2431/fdinfo/5’: 沒有那個文件或目錄 find: ‘/proc/2431/fd/6’: 沒有那個文件或目錄 find: ‘/proc/2431/fdinfo/6’: 沒有那個文件或目錄 /etc/adjtime /root/test/a.txt /root/1.txt /root/.a.txt.swo /root/.a.txt.swp /var/lib/unbound/root.key /home/du/.local/share /home/du/.local/share/app-info 3、對查找內容執行相應命令 -exec 這個選項參數后面可以跟自定義的SHELL命令,格式如下:命令 {} \;, 例2:查找并顯示當前目錄下的以back結尾的文件 [root@break test]# find . -name "*.back" -exec ls -l {} \; -rw-r--r--. 1 root root 0 3月 28 14:01 ./1.back -rw-r--r--. 1 root root 0 3月 28 14:01 ./2.back -rw-r--r--. 1 root root 0 3月 28 14:01 ./3.back 例3:移動到/opt/下將找到的back文件結尾的內容 [root@break test]# find . -name "*.back" -exec mv {} /opt/ \; [root@break test]# ls -al *.back ls: 無法訪問*.back: 沒有那個文件或目錄 [root@break test]# ls /opt 1.back 1.txt 2.back 2.txt 3.back 3.txt 4.txt a.txt back b.txt cpu.txt c.txt rh success.txt xuegod.txt 例4:把查找到的文件復制到一個指定的目錄 [root@break test]# find . -name "*.back" -exec cp {} /opt/back \; [root@break test]# cd /opt/back/ [root@break back]# ls 100.back 17.back 24.back 31.back 39.back 46.back 53.back 60.back 68.back 75.back 82.back 8.back 97.back 10.back 18.back 25.back 32.back 3.back 47.back 54.back 61.back 69.back 76.back 83.back 90.back 98.back 11.back 19.back 26.back 33.back 40.back 48.back 55.back 62.back 6.back 77.back 84.back 91.back 99.back 12.back 1.back 27.back 34.back 41.back 49.back 56.back 63.back 70.back 78.back 85.back 92.back 9.back 13.back 20.back 28.back 35.back 42.back 4.back 57.back 64.back 71.back 79.back 86.back 93.back back.tar 14.back 21.back 29.back 36.back 43.back 50.back 58.back 65.back 72.back 7.back 87.back 94.back 15.back 22.back 2.back 37.back 44.back 51.back 59.back 66.back 73.back 80.back 88.back 95.back 16.back 23.back 30.back 38.back 45.back 52.back 5.back 67.back 74.back 81.back 89.back 96.back例5:xargs和find命令結合 復制文件 -i 表示 find 傳遞給xargs的結果 由{}來代替 (了解) 也就是說,-exec ==| xargs -i 并且去掉\; [root@break test]# find . -name "*.back" | xargs -i cp {} /opt [root@break test]# cd /opt/ [root@break opt]# ls 100.back 17.back 24.back 31.back 39.back 46.back 53.back 60.back 68.back 75.back 82.back 8.back ... 例6:查找多個類型文件 比較符的使用:-a and 并且-o or 或者+ 超過- 低于 #同時找到2種不同的文件 [root@break test]# touch a.sh b.hs [root@break test]# find . -name "*.sh" -o -name "*.hs" ./a.sh ./b.hs #查找大于20K的文件,小于50K的文件 [root@break test]# find /etc -size +20k -a -size -50k /etc/selinux/targeted/active/modules/100/apache/hll /etc/selinux/targeted/active/modules/100/init/hll /etc/selinux/targeted/active/modules/100/staff/cil例7: 按權限查找:-perm [root@break test]# find /bin -perm -644 /bin 查找文件的777文件 [root@break test]# find / -type f -perm 777 find: ‘/proc/5013/task/5013/fdinfo/5’: 沒有那個文件或目錄 find: ‘/proc/5013/fdinfo/6’: 沒有那個文件或目錄例8:查找的目錄深度: -maxdepth 1 #只查找目錄第一層的文件和目錄 如:查找/bin目錄下權限至少為111的普通文件。 [root@break test]# find /bin/ -maxdepth 1 -type f -perm 111 /bin/sudoreplay 例9:查找系統中所有屬于用戶du的文件,并把這個文件,放到/root/findresults目錄下 [root@break ~]# mkdir findresults [root@break ~]# find / -user du -exec cp -a {} /root/findresults/ \; find: ‘/proc/5872/task/5872/fd/5’: 沒有那個文件或目錄 find: ‘/proc/5872/task/5872/fdinfo/5’: 沒有那個文件或目錄 find: ‘/proc/5872/fd/6’: 沒有那個文件或目錄 find: ‘/proc/5872/fdinfo/6’: 沒有那個文件或目錄 cp: 無法以目錄"/home/du" 來覆蓋非目錄"/root/findresults/du" 出現這種錯誤,是因為你要將不同目錄,但名字相同的文件,放到同一文件下。

總結

以上是生活随笔為你收集整理的find命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。