只列出文件,而不是在unix中递归

时间:2013-04-30 18:47:28

标签: shell unix

我想知道find或ls中是否有一些选项可以打印文件而不是工作目录中的目录。

find ./ -type f 

以递归方式打印所有文件,但我需要的只是此文件夹中的文件

提前致谢

3 个答案:

答案 0 :(得分:3)

您可以使用maxdepth选项限制递归。

find ./ -type f -maxdepth 1

答案 1 :(得分:3)

来自man find

-maxdepth  
   Descend at most levels (a non-negative integer) levels of directories below the 
   command line arguments. `-maxdepth 0' means only apply the tests and actions to the    
   command line arguments.

find . -type f -maxdepth 1应该做你想做的事情

答案 2 :(得分:1)

find包含您可能不想要的隐藏点文件。

此解决方案使用ls命令作为输入数组,在每个输入到grep的条目上调用ls -ld以排除输出发送到null的目录,如果成功回显原始输入:

for list in `ls` ; do ls -ld $list | grep -v ^d > /dev/null && echo $list ; done ;

您可以反转grep和条件输出,结果相同:

for list in `ls` ; do ls -ld $list | grep ^d > /dev/null || echo $list ; done ;