开发者

Yet another bash that needs explanation

Here another bash command that needs some explanation. Can someone explain what are does the option means for the $find command mean? I know that the command finds file with 0 bytes and throw them away.

$fin开发者_运维问答d . – type f –size 0 | xargs rm ls -ld

what does the . mean? What does the | mean?

what does - type f - size 0

what is xargs ?

what does - ld mean?

rm = remove ls = list


Find takes one parameter: the directory to use as the root for the search. All other paramters are passed in as options.

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.

The output from the find command will be a list of empty files. This output is then fed into xargs. xargs is a program that takes a list of strings as input and then performs a given command on all of them.

The command xargs rm ls -ld you have typed out appears erroneous. I will use xargs rm as an example instead.

xargs rm

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

Thus the full command find . -type f -size 0 | xargs rm finds all empty files and deletes them.


. is the current directory

| pipes the output of one command (find) into the input of another (xargs)

I would suggest that you use man find, man xargs and man ls to determine what the options are for find and what exactly xargs and ls are doing.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜