簡體   English   中英

Linux查找命令問題

[英]Linux find command questions

我沒有運行正常的Linux系統來嘗試使用這些命令,因此我在這里詢問我計划做的事情是否正確。 (在我通過撥號速度更快的連接下載ISO時執行此操作)。

1,我試圖在/ var / log目錄和子目錄中找到所有帶有.log擴展名的文件,將標准輸出寫入logdata.txt,將標准輸出寫入logerrors.txt

我相信命令將是:

$查找/ var / log / -name * .log 1> logdata.txt 2> /home/username/logs/logerrors.txt。

2,在/ etc目錄中找到所有帶有.conf的文件。 標准輸出將是一個名為etcdata的文件,而標准錯誤將為etcerrors。

$ find / etc -name * .conf 1> etcdata 2> etcerrors

3,在/ var目錄中查找最近30分鍾內已修改的所有文件。 標准的做法是進入vardata,將錯誤放入varerrors。

會是:

$ find / var -mmin 30 1> vardata 2> varerrors。

這些正確嗎? 如果不是,我在做什么錯?

1,我試圖在/ var / log目錄和子目錄中找到所有帶有.log擴展名的文件,將標准輸出寫入logdata.txt,將標准輸出寫入logerrors.txt

干得好:

find /var/log/ -name '*.log' >logdata.txt 2>/home/username/logs/logerrors.txt

筆記:

  • 您需要引用'* .log',否則shell將在傳遞給find之前將其展開。
  • 無需寫1>file>file就足夠了

2,在/ etc目錄中找到所有帶有.conf的文件。 標准輸出將是一個名為etcdata的文件,而標准錯誤將為etcerrors。

如前所述:

find /etc -name \*.conf >etcdata 2>etcerrors

為了舉例,在這里我以另一種方式逃脫了* 這等效於'*.conf'

3,在/ var目錄中查找最近30分鍾內已修改的所有文件。 標准的做法是進入vardata,將錯誤放入varerrors。

find /var -mmin -30 >vardata 2>varerrors

我將-mmin 30更改為-mmin -30 這樣,它可以匹配30分鍾修改的文件。 否則,它匹配的文件恰好在30分鍾前被修改。

在命令中使用通配符時,需要確保外殼程序不會解釋通配符。 因此,最好在引號中包含通配符的表達式。 因此,第一個將是:

find /var/log/ -name "*.log" 1>logdata.txt 2>/home/username/logs/logerrors.txt

對於第二個相同的注釋,應該在其中具有"*.conf"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM