一、问题描述
遇到的问题是找到系统根目录下所有*.conf文件,并且找出其中文件容量最大的文件。通常find/ls方法都是指定一个目录下的文件,像这种指定后缀的却所在目录又不同的一大堆文件怎么查找最大文件呢?
二、解决方法一之倒引号
- 倒引号介绍
单引号是 (‘ ’) ,双引号是 (“ ”) ,倒引号是什么?
倒引号其实就是键盘esc下方的键输出,在按下 shift 下输出的是我们常用的(~),而在普通状态下则是( ` )。 - 倒引号作用
倒引号中一般包围住的是命令,出现倒引号时,系统会优先执行倒引号中的命令,就近匹配命令执行。 - 解决方法:
使用ls -S使得文件按照大小排序,使用管道和head输出前5项即为所查找文件大小最大的五项.conf文件(这里为了方便对照选择了输出前5项)。
ls -lSh `find / -type f -name "*.conf"` | head -n 5
三、解决方法二之Xargs传参
- xargs介绍
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。它和管道区别在于xargs可以传参,而管道不可以,我们这里利用xargs来传参。 - 解决方法
find / -type f -name *.conf | xargs ls -lSh | head -n 1