2016-12-29 79 views
1

假設我有一個目錄,看起來像:如何刪除目錄中空的所有文件?

-rw-r--r-- 1 some-user wheel 0 file1 
-rw-r--r-- 1 some-user wheel 257 file2 
-rw-r--r-- 1 some-user wheel 0 file3 
-rwxr-xr-x 1 some-user wheel 212 file4 
-rw-r--r-- 1 some-user wheel 2012 file5 
.... more files here. 

如果是相關的,假設文件的名稱是更隨機不僅僅是文件#。

如何在某個目錄中僅使用rm和grep或sed以某種形式刪除空的文件(即文件中有0個字節)?

+0

Stack Overflow是用於編程和發展問題的站點。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈有關Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww

+0

對不起。我需要知道我寫的一個清理腳本。謝謝! – MisterHuac

回答

3

最簡單的方法是用-empty測試和-delete動作,例如運行find

find -type f -empty -delete 

該命令會在當前目錄下的所有文件(-type f)及其子目錄,測試如果匹配的文件是空的,並適用-delete動作,如果-empty返回true

如果要將操作限制在特定深度級別,請使用-mindepth-maxdepth全局選項。

+0

@Inian GNU'find'手冊指出''-delete'「是由BSD系列操作系統引入的,所以它應該比GNU'find'系統更廣泛。 –

+1

@BenjaminW .:乾杯!無法直接在['POSIX'](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html)頁面上找到,只需在'FreeBSD'頁面中確認 – Inian

0

的命令是:

cd DirectoryWithTheFiles 
rm -f $(find . -size 0) 
+3

這對帶有空格的文件名有影響。 –

相關問題