Linux命令之find(二)

接上一篇Linux命令之find(一)html

(1).實例node

  1.列出當前目錄下及子目錄下全部的.txt文件vim

[xf@xuexi ~]$ ls
1.txt  3.txt  b.txt  公共  視頻  文檔  音樂
2.txt  a.txt  c.txt  模板  圖片  下載  桌面
[xf@xuexi ~]$ find . -name "*.txt"
]./.cache/tracker/db-version.txt
./.cache/tracker/db-locale.txt
./.cache/tracker/parser-sha1.txt
./.cache/tracker/locale-for-miner-user-guides.txt
./.cache/tracker/locale-for-miner-apps.txt
./.cache/tracker/last-crawl.txt
./.cache/tracker/first-index.txt
./1.txt
./2.txt
./3.txt
./a.txt
./b.txt
./c.txt

  2.查找當前用戶下更改時間在一天內或一天以上的.txt文件bash

[xf@xuexi ~]$ find . -mtime -1 -name "*.txt"  //一天內
./.cache/tracker/locale-for-miner-user-guides.txt
./.cache/tracker/locale-for-miner-apps.txt
./1.txt
./2.txt
./3.txt
./a.txt
./b.txt
./c.txt
[xf@xuexi ~]$ stat 1.txt 
  文件:"1.txt"
  大小:0         	塊:0          IO 塊:4096   普通空文件
設備:803h/2051d	Inode:52016194    硬連接:1
權限:(0664/-rw-rw-r--)  Uid:( 1000/      xf)   Gid:( 1000/      xf)
環境:unconfined_u:object_r:user_home_t:s0
最近訪問:2019-03-04 15:33:04.998746697 +0800
最近更改:2019-03-04 15:33:04.998746697 +0800
最近改動:2019-03-04 15:33:04.998746697 +0800
建立時間:-
[xf@xuexi ~]$ find . -mtime +1 -name "*.txt"  //一天以上
./.cache/tracker/db-version.txt
./.cache/tracker/db-locale.txt
./.cache/tracker/parser-sha1.txt
./.cache/tracker/last-crawl.txt
./.cache/tracker/first-index.txt
[xf@xuexi ~]$ stat ./.cache/tracker/db-version.txt 
  文件:"./.cache/tracker/db-version.txt"
  大小:2         	塊:8          IO 塊:4096   普通文件
設備:803h/2051d	Inode:35360       硬連接:1
權限:(0644/-rw-r--r--)  Uid:( 1000/      xf)   Gid:( 1000/      xf)
環境:unconfined_u:object_r:cache_home_t:s0
最近訪問:2019-03-04 10:05:12.993515697 +0800
最近更改:2018-09-06 11:43:45.770953885 +0800
最近改動:2018-09-06 11:43:45.770953885 +0800
建立時間:-

  3.對查找內容執行相應命令app

exi ~]$ touch {1,2,3}.back
[xf@xuexi ~]$ find . -name "*.back"
./1.back
./2.back
./3.back
[xf@xuexi ~]$ find . -name "*.back" -exec ls -l {} \;
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./1.back
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./2.back
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./3.back
[xf@xuexi ~]$ ls -l ./1.back;ls -l ./2.back;ls -l ./3.back;    //拆分執行
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./1.back
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./2.back
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./3.back

  4.與xargs -i聯合使用,find的結果值代替其中的{}less

[xf@xuexi ~]$ find . -name "*.back" | xargs -i ls -l {}
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./1.back
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./2.back
-rw-rw-r--. 1 xf xf 0 3月   4 18:39 ./3.back

  5.查找多個類型文件ssh

[xf@xuexi ~]$ touch a.pdf
[xf@xuexi ~]$ find . -name "*.back" -o -name "*.pdf"  //-o或者,也可寫成-or
./1.back
./2.back
./3.back
./a.pdf
[xf@xuexi ~]$ find . -size +20k -a -size -30k  //-a而且,也可寫成-and
./.config/pulse/93c68f6a5c7b462db558e8e995b4212a-card-database.tdb
./.local/share/evolution/addressbook/system/contacts.db

  6.按照權限查找ide

[root@xuexi ~]# mkdir aaa
[root@xuexi ~]# mkdir bbb
[root@xuexi ~]# touch a.sh
[root@xuexi ~]# chmod 777 aaa
[root@xuexi ~]# chmod 1777 bbb
[root@xuexi ~]# chmod 4777 a.sh
[root@xuexi ~]# find /root/ -perm 777  //權限爲777的全部文件或文件夾
/root/aaa
[root@xuexi ~]# find /root/ -perm -777  //權限至少爲777的全部文件或文件夾
/root/aaa
/root/bbb
/root/a.sh
[root@xuexi ~]# find /root -type f -perm -777  //權限至少爲777的全部普通文件。-type f指定普通文件
/root/a.sh

  7.查找目錄深度ui

[root@xuexi ~]# find /bin -maxdepth 1 -perm -755  //bin後沒有/,那麼bin爲第一層
/bin
[root@xuexi ~]# find /bin/ -maxdepth 1 -perm -755  //bin後有/,則下一層爲第一層
/bin/cp
/bin/lua
/bin/captoinfo
/bin/csplit
/bin/clear
/bin/cut
/bin/luac
/bin/infocmp
/bin/fmt
/bin/unxz
//比較多,只截取部分

  8.查找全部屬於用戶xf的文件,並複製到指定目錄lua

[root@xuexi ~]# mkdir findresults
[root@xuexi ~]# ls
1.txt            core.3160    initial-setup-ks.cfg  模板  圖片  下載  桌面
anaconda-ks.cfg  findresults  公共                  視頻  文檔  音樂
[root@xuexi ~]# find / -user xf -exec cp -a {} /root/findresults/ \;
find: ‘/proc/11379/task/11379/fd/5’: 沒有那個文件或目錄
find: ‘/proc/11379/task/11379/fdinfo/5’: 沒有那個文件或目錄
find: ‘/proc/11379/fd/6’: 沒有那個文件或目錄
find: ‘/proc/11379/fdinfo/6’: 沒有那個文件或目錄
cp: 沒法以目錄"/home/xf" 來覆蓋非目錄"/root/findresults/xf"

  上面的命令是沒有問題的,這裏涉及到同一目錄下文件與文件、文件夾與文件夾,文件與文件夾都不能同名。Windows文件與文件夾可以同名是由於文件有擴展名,不然也不能重名。

  這時咱們能夠臨時修改一下文件名,以即可以繼續執行

[root@xuexi ~]# mv /var/spool/mail/xf /var/spool/mail/xf.mail    //臨時修改一下文件名
[root@xuexi ~]# rm -rf /root/findresults/*    //清空原來的複製文件
[root@xuexi ~]# find / -user xf -exec cp -a {} /root/findresults/ \;    //從新執行
find: ‘/proc/12438/task/12438/fd/5’: 沒有那個文件或目錄
find: ‘/proc/12438/task/12438/fdinfo/5’: 沒有那個文件或目錄
find: ‘/proc/12438/fd/6’: 沒有那個文件或目錄
find: ‘/proc/12438/fdinfo/6’: 沒有那個文件或目錄
cp: "/root/findresults/.esd-1000" 與"/root/findresults/.esd-1000" 爲同一文件
cp: "/root/findresults/.mozilla" 與"/root/findresults/.mozilla" 爲同一文件
cp: "/root/findresults/.bash_logout" 與"/root/findresults/.bash_logout" 爲同一文件
cp: "/root/findresults/.bash_profile" 與"/root/findresults/.bash_profile" 爲同一文件
cp: "/root/findresults/.bashrc" 與"/root/findresults/.bashrc" 爲同一文件
cp: "/root/findresults/.cache" 與"/root/findresults/.cache" 爲同一文件
cp: "/root/findresults/.changed" 與"/root/findresults/.changed" 爲同一文件
cp: "/root/findresults/.dbus" 與"/root/findresults/.dbus" 爲同一文件
cp: "/root/findresults/.config" 與"/root/findresults/.config" 爲同一文件
cp: "/root/findresults/.ICEauthority" 與"/root/findresults/.ICEauthority" 爲同一文件
cp: "/root/findresults/.local" 與"/root/findresults/.local" 爲同一文件
cp: "/root/findresults/.esd_auth" 與"/root/findresults/.esd_auth" 爲同一文件
cp: "/root/findresults/.bash_history" 與"/root/findresults/.bash_history" 爲同一文件
cp: "/root/findresults/.lesshst" 與"/root/findresults/.lesshst" 爲同一文件
cp: "/root/findresults/.viminfo" 與"/root/findresults/.viminfo" 爲同一文件
[root@xuexi ~]# mv /var/spool/mail/xf.mail /var/spool/mail/xf    //最後再改回來
[root@xuexi ~]# ls /var/spool/mail/
root  rpc  xf
相關文章
相關標籤/搜索