Find
xargs 執行多個命令?
是否可以使用
xargs
執行多個命令?我找到的唯一相關資訊是this question,但答案與xargs
.我正在執行一個簡單的
du / -ah | sort -r -n | head -n 10 | awk '{print $2}'
查找佔用磁碟空間最多的文件。但是,它也返回目錄,我只想刪除文件以保留任何結構。
我厭倦了使用
find
命令,因為我不確定是否可以按磁碟使用情況而不是文件大小進行搜尋。任何輸入將不勝感激!
您可以使用
find
僅獲取正常文件並du
為它們執行。下面的命令會抑制標準錯誤,因為如果您對根目錄執行此操作,則可能會對某些特殊目錄產生一些抱怨。這裡-h
同時用於du
和sort
,這有利於對顯示文件大小進行排序。find / -type f -exec du -h {} + 2>/dev/null | sort -hr | head | cut -f2-
換行符也用作上述命令的文件分隔符。進入 GNU shell 的安全方法是使用空字節來分隔參數,例如:
find / -type f -exec du -h0 {} + 2>/dev/null | sort -zhr | head -z | cut -zf2- | xargs -r0 <some command to run for the 10 biggest files>
對於您的情況(
/
以任何使用者身份搜尋),只需列印文件及其大小,然後決定要做什麼。不要將結果直接發送到rm --
.也可以看看: