文章標簽 ‘find’

linux find命令小記

2012年2月3日 沒有評論

在一個備份腳步中執行了刪除7天前的舊備份文件的命令,備份文件存放在/home/backups/files/下,命令如下:

find /home/backups/files/ -mtime +6 -exec rm -rf {} \;

開始時候運行正常,一段時間后發現沒有備份了,查看下來,發現/home/backups/files/文件都不存在了。原來是因為find寫法有問題,find /home/backups/files/ -mtime +6 出來的結果會包含/home/backups/files/目錄(當files目錄的創建時間超過7天),是自己想當然的以為在目錄后面加了“/”就只查找該目錄下的文件,測試下來,find /home/backups/files/ -mtime +6和find /home/backups/files -mtime +6的結果一致。知道問題所在了,解決問題就好辦了,只需要在后面加個星號(*)通配符就行了,如下:

find /home/backups/files/* -mtime +6 -exec rm -rf {} \;
分類: Linux 標簽: ,

linux下刪除文件名亂碼文件

2011年9月22日 沒有評論

linux下通過rm命令來刪除文件,但是如果要刪除文件名亂碼的文件,就不能直接使用rm命令了,因為壓根就無法輸出文件名來。不過借助find命令可以實現對其刪除。在linux下對于每個文件都一個對應的不變的inode號,使用 ls -li 可以查看到文件的inode號,同時find可以根據inode號來查找,另外find命令中可以執行其他的命令。刪除的步驟如下:

  1. 通過ls -li 獲取要刪除亂碼文件名文件的inode號,比如得到的是 123456
  2. 執行刪除
find ./ -inum 123456 -exec rm -rf {} \;

注意:“{}”后要空一格再加上“\;”。

分類: Linux 標簽: , , ,

find命令錯誤提示路徑必須在表達式之前

2011年9月22日 沒有評論

在某些版本的linux下,通過find查找當前目錄下所有后綴名jpg的文件,命令為

find ./ -iname *.jpg

會出現“find: 路徑必須在表達式之前”的錯誤提示。解決的方法有兩種

  1. 使用轉義符把*轉義,即? \*.jpg
  2. 用引號引起來 ,即 “*.jpg”

注意:如果需要把find 的結果提交給while,例如:

`echo find ./ -iname "\*.jpg"` | while read f
do
   #do something
done

則既需要轉義符,也需要引號

分類: Linux 標簽: ,

linux下find命令根據系統時間查找文件用法

2011年9月5日 沒有評論

find 命令有幾個用于根據您系統的時間戳搜索文件的選項。這些時間戳包括

mtime		文件內容上次修改時間
atime		文件被讀取或訪問的時間
ctime		文件狀態變化時間

mtime 和 atime 的含義都是很容易理解的,而 ctime 則需要更多的解釋。由于 inode 維護著每個文件上的元數據,因此,如果與文件有關的元數據發生變化,則 inode 數據也將變化。這可能是由一系列操作引起的,包括創建到文件的符號鏈接、更改文件權限或移動了文件等。由于在這些情況下,文件內容不會被讀取或修改,因此 mtime 和 atime 不會改變,但 ctime 將發生變化。

這些時間選項都需要與一個值 n 結合使用,指定為 -n、n 或 +n。

N * 24
+1	表示	1 * 24 +24小時以外..
+0	表示	0 * 24 +24小時以外
1	表示	1 * 24 + 24 到 24 之間..
0	表示	0 * 24 + 24 到 0 之間..
-1	表示	0 * 24 +24 內,甚至為未來時間...

1.當前時間24小時—當前時間(昨天-今天)
#find . -mtime 0
2.當前時間48小時前–當前時間24小時前(前天-昨天)
#find . -mtime 1
3.當前時間48小時前(2天前)
#find . -mtime +1
4.當前時間24小時–當前時間(昨天-今天)
#find . -mtime -1

無覓相關文章插件,快速提升流量

30选5怎么中奖