Linux find 查詢檔案

2021-06-02 19:16:25 字數 1576 閱讀 8728

在日誌資料夾下判斷是否有web伺服器的日誌資料夾,寫了個指令碼:

#!/bin/bash

cd /wls/annuity_acc

for sys in `cat ./wiiserver_name_list.txt`

do#find /logs/$sys* -name "$sys*" |xargs echo -en '\n' >> 123.txt

find /logs/$sys* -name "$sys*" -print

done

#find /logs/$sys* -name "$sys*" |xargs echo -en '\n' >> 123.txt

輸出到123.txt,但是如果有多個匹配的情況會出現不換行的情況,如:

abbswii6758  abbswii6759  abbswii6760

annwii3454

gbswii9876   

想要以下格式輸出到文字:

abbswii6758  

abbswii6759 

abbswii6760

annwii3454

gbswii9876 

只想到用-print方法

***************mark   2012-05-04**********===

#find /logs/$sys* -name "$sys*" -exec ls -l {} \; >> 123.txt

可以得到列表效果

**********===find -perm查詢  多路徑

**********===

這兩天碰到乙個查詢某一路徑下的非777的mdl檔案,可以用以下來實現:

find /pamis/data5/cognos/createcubes8/*/mdl -name "*.mdl" -type f |xargs ls -l |grep -v rwx

find /pamis/data5/cognos/createcubes8/*/mdl -name "*.mdl" -type f ! -perm 777 -exec ls -l {} \;

以上兩種得到的效果是一樣的,但是如果要將得到的結果做為輸入流傳給&2,可能兩者會有差別

find後面的路徑支援多個,但是要以空格隔開,並且路徑支援*?[1-9]這樣的正規表示式:如下:

find /pamis/data5/cognos/createcubes8/*/mdl/[e,g,i,n,p][h,b,o,e][i,s,c,w,t,n]* -name "*.mdl" -type f ! -perm 777 -exec ls -l {} \; >&2

*****====find -regex正規表示式查詢  多路徑

**********=

find /home/panzhaobo -name "*.pl" -type f ! -perm 777 -exec ls -l {} \;|xargs echo "" > tes***l.log

find -regex '/home/panzhaobo/.*\.pl' -type f ! -perm 777 -exec ls -l {} \;

上面的-regex是正規表示式後面的引數是帶全路徑的name

linux find 查詢檔案

1.根據名稱查詢某個目錄下的檔案 目錄 例子 查詢根目錄下的檔案名字為a.txt find name a.txt 2.根據名稱查詢某個目錄下型別為檔案的a.txt type f 檔案 d 目錄 find name a.txt type f 3.查詢某目錄下大小為在某個範圍的檔案 例子 查詢hive目...

linux find 命令查詢檔案和資料夾

查詢目錄 find 查詢範圍 name 查詢關鍵字 type d 查詢檔案 find 查詢範圍 name 查詢關鍵字 print 詳解 find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案...

linux find 命令查詢檔案和資料夾

查詢目錄 find 查詢範圍 name 查詢關鍵字 type d 查詢檔案 find 查詢範圍 name 查詢關鍵字 print 詳解 find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案...