首先是通過檔名稱來查詢,需要使用乙個-name引數。
查詢以 .txt結尾的檔案,和以 t 開頭的檔案:
ubuntu@ubuntu:~/test$ lsone.txt three.txt two.txt
ubuntu@ubuntu:~/test$ find ./ -name '*.txt'
./two.txt
./one.txt
./three.txt
ubuntu@ubuntu:~/test$ find ./ -name 't*'
./two.txt
./three.txt
其中 ./ 表示當前目錄,後面還可以跟上一些簡單的正規表示式,如下面的例子,注意此時正規表示式需要使用引號括起來。
ubuntu@ubuntu:~/test$ touch 123.txtubuntu@ubuntu:~/test$ find ./ -name '[a-z]'* #以乙個字母開頭的檔案
./two.txt
./one.txt
./three.txt
ubuntu@ubuntu:~/test$ find ./ -name '[1-9]'* #以乙個數字1-9開頭的檔案
./123.txt
ubuntu@ubuntu:~/test$
可以通過許可權值來查詢,此時要使用-perm 引數
ubuntu@ubuntu:~/test$ ls -ltotal 0
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 one.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ chmod 777 one.txt
ubuntu@ubuntu:~/test$ find -perm 777
./one.txt
ubuntu@ubuntu:~/test$ find -perm 664
./two.txt
./three.txt
./123.txt
ubuntu@ubuntu:~/test$
還可以通過檔案型別來查詢,使用-type引數,其中f表示檔案,d表示目錄
ubuntu@ubuntu:~/test$ mkdir dironeubuntu@ubuntu:~/test$ ls -l
total 4
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirone
-rwxrwxrwx 1 ubuntu ubuntu 0 1月 20 21:18 one.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ find ./ -type f
./two.txt
./one.txt
./three.txt
./123.txt
ubuntu@ubuntu:~/test$ find ./ -type d
././dirone
ubuntu@ubuntu:~/test$
可以根據檔案建立者查詢,使用-user引數
ubuntu@ubuntu:~/test$ ls -ltotal 4
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirone
-rwxrwxrwx 1 ubuntu ubuntu 0 1月 20 21:18 one.txt
-rw-r--r-- 1 root root 0 1月 20 21:42 roottouch
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ find -user root
./roottouch
ubuntu@ubuntu:~/test$ find -user ubuntu
../two.txt
./one.txt
./three.txt
./123.txt
./dirone
ubuntu@ubuntu:~/test$
可以根據檔案更改時間來查詢,使用-mtime引數。
find ./ -mtime -5 #查詢當前目錄下,5天以內更改過的檔案或者目錄find ./ -mtime +3 #查詢當前目錄下,最後一次更改時間在3天以前的檔案
根據檔案大小來查詢,使用-size引數。注意如果要是用檔案區間,則每乙個檔案大小的前面都要加上-size引數,和mtime類似。還要注意的是,1兆位元組使用1m,不要使用1m
ubuntu@ubuntu:~/test$ ls -ltotal 8
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirone
-rwxrwxrwx 1 ubuntu ubuntu 15 1月 20 22:01 one.txt
-rw-r--r-- 1 root root 0 1月 20 21:42 roottouch
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt
ubuntu@ubuntu:~/test$ find ./ -size -10c #小於10位元組的檔案
./two.txt
./roottouch
./three.txt
./123.txt
ubuntu@ubuntu:~/test$ find ./ -size +10c -size -20c #小於20位元組,大於10位元組的檔案
./one.txt
ubuntu@ubuntu:~/test$
find的這些引數是可以配合使用的,還可以使用xargs命令配合使用,將結果作為xargs後面命令的輸入。
shell指令碼檔案引數
本文編輯自 當我們我們向 指令碼檔案傳遞引數 可以通過 1,2 等特殊變數。很方便,但是有些限制,就是不能超過9個引數。通過使用 shift getopts 我們能更方便地提取引數。一 shift 通過使用 shift 我們將 shell指令碼檔案 的引數起點從左向右移。在shift命令中可以給乙個...
Shell指令碼檔案練習
使用if條件語句來判斷 media cdrom檔案是否存在,若存在就結束條件判斷和整個shell指令碼,反之則去建立這個目錄 vim mkcdrom.sh bin bash ping c 3 i 0.2 w 3 1 dev null if eq 0 then echo host 1 is on li...
shell指令碼設計之檔案查詢
判斷目錄 root mmm 下是否存在乙個名為1.c的檔案,如果存在,將它改名為111.c 如果不存在,顯示一行資訊 root mmm 1.c does not exit報告這個檔案不存在。在查詢存在的檔案 root mmm cba.c並將其改名為abc.c,儲存目錄保持不變。查詢不存在的檔案並提示...