在linux系統中怎麼樣尋找到大檔案?__linux

來源:互聯網
上載者:User

在UNIX中工作的常見問題之一是找到大檔案來釋放一些空間。假設您的檔案系統已滿,並且您收到警報釋放空間,或者如果主機空間不足,並且您的服務沒辦法啟動,您首先要尋找的是十大檔案,看看是否可以刪除大檔案。如果是Java應用程式或在Tomcat上啟動並執行Web應用程式,那麼可以刪除這些堆檔案釋放出空間,但最重要的問題是如何找到它們。你如何知道檔案系統中最大檔案的大小,在哪個目錄。我們將在本文中嘗試找到其中一些問題的答案。

當我剛剛到Linux時,我沒有別的選擇,只能去日誌目錄,尋找更大的舊檔案並刪除它們。伺服器運行得很好,直到有一天我們的伺服器因為特大的快取檔案被掛掉。無法定位到檔案所在目錄,然後我開始瞭解find命令,且搜尋大檔案的子目錄,如下所示:

$ find . -size +1G

如上命令將從目前的目錄和及子目錄列印出大於1GB的所有檔案。唯一的問題是它不能精確的列印出大小。使用 -printf選項可以解決問題,該選項允許您指定格式String,就像Java的printf()方法一樣。

進一步調整命令來尋找檔案,且精確的列印出檔案大小。

$ find . -size +1G -printf '%s %p\n'

%s表示大小,%p表示路徑。

或者,還可以使用-exec選項在每個檔案上運行ls,find命令返回且列印其大小,如下所示:

$ find . -size +100M -exec ls -sh {} \;

這個命還算可以,夠用。讓我們接著看看更好的一種用法,如下命

$ du -a . | sort -n -r | head -n 1016095096 .13785288 ./logs6095380 ./logs/app2125252 ./temp2125244 ./temp/data2125240 ./temp/data/app

此命令以排序的方式列出了大小前10的目錄和檔案,如此一天就很容易定位到大檔案所在位置

翻譯:http://www.java67.com/2017/08/how-to-find-large-files-with-size-in-Linux.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.