1. 程式人生 > >Linux-使用 Find 命令找到那些需要清理的檔案

Linux-使用 Find 命令找到那些需要清理的檔案

概述

有一個問題幾乎困擾著所有的檔案系統 – 包括 Unix 和其他的 – 那就是檔案的不斷積累。幾乎沒有人願意花時間清理掉他們不再使用的檔案和整理檔案系統,結果,檔案變得很混亂,很難找到有用的東西,要使它們執行良好、維護備份、易於管理,這將是一種持久的挑戰。

其中一種解決問題的方法是建議使用者將所有的資料碎屑建立一個檔案集合的總結報告或”概況”,來報告諸如所有的檔案數量;最老的,最新的,最大的檔案;並統計誰擁有這些檔案等資料

常用命令

當我們準備做 Unix 檔案系統的總結報告時,幾個有用的 Unix 命令能提供一些非常有用的統計資訊。

計算目錄中的檔案數

要計算目錄中的檔案數,你可以使用這樣一個 find 命令。

[email protected]/>find . -type f | wc -l
117203

查詢最老或者最新的檔案

雖然查詢最老的和最新的檔案是比較複雜,但還是相當方便的。

在下面的命令,我們使用 find 命令在當前目錄及遞迴目錄再次查詢檔案,以檔案時間排序並按年-月-日的格式顯示,在列表頂部的顯然是最老的。

最老的檔案

xgj@/xgj>find -type f -printf '%T+ %p\n' | sort | head -n 1
2000-01-11+17:15:50.0000000000 ./tools/source/swig-1.3.31/Lib/guile/Makefile

顯示多少個最老的檔案,修改-n 的引數即可

最新的一個檔案

[email protected]/xgj> find -type f -printf '%T+ %p\n' | sort | tail -n 5
2017-01-11+18:02:19.0369273530 ./apche/log/ftp.log

printf 命令輸出 %T(檔案日期和時間)和 %P(帶路徑的檔名)引數。

忽略以.開頭的檔案

如果我們在查詢家目錄時,無疑會發現,history 檔案(如 .bash_history)是最新的,這並沒有什麼用。你可以通過 “un-grepping” 來忽略這些檔案,也可以忽略以.開頭的檔案

[email protected]/xgj>find -type f -printf '%T+ %p\n' | grep -v "\./\." | sort | tail -n 1

尋找最大的檔案使用 %s(大小)引數,包括檔名(%f )

[email protected]/xgj>find -type f -printf '%s %f \n' | sort -n | uniq | tail -1                 
821749119 entel_export_bal.dat 

統計檔案的所有者,使用%u(所有者)

[email protected]/xgj>find -type f -printf '%u \n' | grep -v "\./\." | sort | uniq -c
  21237 xgj 

最後訪問(%a)引數

如果檔案系統能記錄上次的訪問日期,也將是非常有用的,可以用來看該檔案有沒有被訪問過,比方說,兩年之內沒訪問過。這將使你能明確分辨這些檔案的價值。這個最後訪問(%a)引數這樣使用:

find -type f -printf '%a+ %p\n' | sort | head -n 1

當然,如果大多數最近​​訪問的檔案也是在很久之前的,這看起來你需要處理更多檔案了。

find -type f -printf '%a+ %p\n' | sort | tail -n 1

要想層次分明,可以為一個檔案系統或大目錄建立一個總結報告,顯示這些檔案的日期範圍、最大的檔案、檔案所有者們、最老的檔案和最新訪問時間,可以幫助檔案擁有者判斷當前有哪些資料夾是重要的哪些該清理了。

相關推薦

Linux-使用 Find 命令找到那些需要清理檔案

概述 有一個問題幾乎困擾著所有的檔案系統 – 包括 Unix 和其他的 – 那就是檔案的不斷積累。幾乎沒有人願意花時間清理掉他們不再使用的檔案和整理檔案系統,結果,檔案變得很混亂,很難找到有用的東西,要使它們執行良好、維護備份、易於管理,這將是一種持久的挑戰。

Linux find命令根據時間篩選出檔案進行刪除

需求:刪除 /home/file/ 目錄下10天之前生成的txt型別的檔案find /home/file/  -ctime +10 -name "*.txt" -print | xargs rm -f或

Linux中用find命令出隱藏檔案和目錄

[[email protected] log]# find /t -name ".*" -printffind: missing argument to `-printf'[[email protected] log]# find /t -name ".*" -print/t/hom

Linux中用find命令出隱藏文件和目錄

is-a efault modules mes logout http 隱藏文件 direct ner [root@localhost log]# find /t -name ".*" -printffind: missing argument to `-printf‘[

linux find命令格式及find命令詳解

/tmp 限制 have 是否 內核 時間 希望 and 獲取參數   本文詳細介紹了linux find命令格式及find命令案例,希望對您的學習有所幫助。1、find命令的一般形式為;find pathname -options [-print -exec -ok .

linux find命令用法 linux學習心得體會

txt linux ali 學習心得 訪問 lin atime str 輸出 find命令用來在指定目錄下查找文件的命令,和locate不同,find命令是實時精確查找,不做模糊匹配,但是可以使用通配符查找,相對更精確。任何位於參數之前的字符串都將被視為欲查找的目錄名。如果

Linux - find

cti int err per pre time 文件名 spa pri # linux文件無創建時間 # Access 使用時間 # Modify 內容修改時間 # Change 狀態改變時間(權限、屬主) # 時間默認以24小時為單位,當前時間到向前24小時為

linux find命令

linux find 參數 以下內容為視頻課程的補充內容,要了解更多linux命令,可以通過以下鏈接學習:http://edu.51cto.com/course/13070.html通過文件名查找法:   這個方法說起來就和在WINDOWS下查找文件一樣容易理解了。如果你把這個文件放在單個的文件夾

Linux某些命令不到/無法使用

unzip命令 pan linu tool color lis all rzsz nbsp 1、zip/unzip命令 yum list | grep zip/unzip yum install zip yum install

linux操作命令 開發人員需要掌握的一些命令

UC oca roo 找x 其他 .gz 開發人員 幫助 color 1、man  查看幫助 2、命令 --help  簡單幫助 3、help cd  查看一些Linux 命令行的一些內置命令 4、cp 粘貼復制命令   eg:cp yum.log /root/ 5、fi

linux-find

count win con 單個 des server 數據庫 -o 更新 導語:whichwhereislocatefind 查找which 只能查詢命令#which rpm whereis 可以查詢命令和配置文件的位置#whereis rpm#whereis pass

LINUX----find 命令

1.如圖在/mnt/下建立了5個檔案並更改了其中的一些組,使用者,其他等     2.find /mnt/  -user root  尋找/mnt/ 下使用者是root 的   3.find /mnt -group s

Linux find 命令詳解

簡介:     在 Linux 中 find 是一個強大的檔案查詢工具, 可以用於查詢系統或指定目錄的指定檔案, find 支援正則表示式和統配符進行匹配   find 命令格式: # 使用格式 find [-H] [-L] [-P] [-D debugopts]

15個實用的Linux find命令示例 -maxdepth例項演示

本文將介紹15種無論是於新手還是老鳥都非常有用的Linux find命令。 首先,在你的home目錄下面建立下面的空檔案,來測試下面的find命令示例。 01 # vim create_sample_files.sh 02 touch MybashProgram.sh 03 touch m

Linux: find命令 ‘/proc/xxxx/task/xxxx/fd/y’: No such file or directory 解決辦法

問題描述: find命令查詢系統中大於50M的檔案時,有幾行報錯: No such file or directory [email protected]:~# find / -size +50M /proc/kcorefind: ‘/proc/6377/task

Linux- find命令的例子

例項 根據檔案或者正則表示式進行匹配 列出當前目錄及子目錄下所有檔案和資料夾 find . 在/home目錄下查詢以.txt結尾的檔名 find /home -name "*.txt" 同上,但忽略大小寫 find /home -iname

linux find 命令避開某個目錄的用法prune

如果想查詢當前目錄(/home/student)下的tmp.txt檔案,但是想要避開sep目錄:  find /home/student -path /home/student/sep -prune -o -name "tmp.txt" -print  sep後面不能加/

Linux shell 命令學習:迴圈讀取檔案內容

Linux shell  命令學習:迴圈讀取檔案內容          因為測試需要,要寫一個shell指令碼,功能為: 從 一個檔案(token 列表)中,讀取所有的token,然後組合成Linux命令,依次在後端執行。         需要組合的命令如下: nohup

Runtime exec 執行linux find 命令時 引號問題

環境: Distributor ID: CentOS、java linux 中使用find 命令 find /opt/test -name '*abc' 假設在這個命令在終端中可以找到 123abc 但是用java程式中  String str="find /opt/tes

linux基本命令(二)-- 檢視檔案行\迴圈檔案行\大小寫轉換

1、 如何檢視檔案的第二行到最後一行 1、 awk '{if(NR!=1)print}' filename 2、 cat filename | tail -n +2 3、 cat filename | sed -n '2,$p' 2、 迴圈檔案行