2011-04-05 76 views
1

這裏需要一些解釋的另一個bash命令。有人可以解釋這個選項對於$ find命令意味着什麼嗎?我知道該命令查找0字節的文件並將其扔掉。另一個需要解釋的bash

$find . – type f –size 0 | xargs rm ls -ld 

是什麼。意思? 什麼|意思?

什麼是 - type f - size 0

xargs是什麼?

- ld是什麼意思?

RM =除去 LS =列表

+5

男人,男人,男人,男人 – Wrikken 2011-04-05 18:25:24

+0

xargs將列表拆分爲子列表。找 。意味着從當前目錄開始。 f指定文件,即不硬鏈接或特殊文件或驅動程序。使用apropos查找。 apropos xargs – 2011-04-05 18:27:44

+1

您的命令似乎格式不正確。它不會像你輸入的那樣工作。 – Swiss 2011-04-05 18:31:23

回答

4

查找需要一個參數:用作搜索根目錄的目錄。所有其他參數都作爲選項傳入。

find . -type f -size 0 

find  : The name of the program. 
.  : The directory to use as the root for the search. 
-type f : Find only regular files. (Excludes directories, sym links, etc.) 
-size 0 : Finds only empty files. 

find命令的輸出將是一個空文件列表。這個輸出然後被送入xargs。 xargs是一個程序,它將字符串列表作爲輸入,然後對所有字符串執行給定的命令。

您輸入的命令xargs rm ls -ld出現錯誤。相反,我將使用xargs rm作爲示例。

xargs rm 

xargs : The name of the program. 
rm  : The command to run on each file. 

因此,完整的命令find . -type f -size 0 | xargs rm找到的所有空文件並刪除它們。

3

.是當前目錄

|一個命令(查找)的輸出轉換成另一(xargs的)輸入

我會建議您使用man find,man xargsman ls來確定findxargs和的選項正在做。