Linux與命令列基礎
以 GNU 的 find 執行 find /data -name "*.log" -mtime +7 -size +100M 時,找到的檔案是下列何者?
- A名稱以 .log 結尾、最後修改在8天以上之前、大小超過100 MiB的檔案
- B名稱以 .log 結尾、最後修改在7天以內、大小超過100 MiB的檔案
- C名稱以 .log 結尾、建立時間在8天以上之前、大小超過100 MiB的檔案
查看答案與解析
正確答案:A. 名稱以 .log 結尾、最後修改在8天以上之前、大小超過100 MiB的檔案
-name "*.log" 選出名稱以 .log 結尾者,-mtime 依內容最後修改的時間,-size +100M 選出大小超過100 MiB者。-mtime 是以24小時為單位計算經過時間並捨去小數後的天數來比較,因此 +7 是「大於7」,也就是經過8天(192小時)以上,只經過7天又23小時的檔案不會被選出。7天以內修改過的檔案要用 -mtime -7 選出。把 *.log 用引號括起來,是為了避免 shell 先把它展開成目前目錄中的檔案名稱。
- A. 正確。+7 表示捨去小數後的天數大於7,也就是8天以上。
- B. 選出7天以內修改過的檔案的是 -mtime -7。+ 表示「大於」,- 表示「小於」。
- C. -mtime 比較的不是建立時間,而是內容最後修改的時間。