列出目录内容

时间:2013-09-17 07:08:48

标签: linux unix command-line

我尝试使用管道编写UNIX命令,该管道将显示我的主目录中的文件数,包括以'开头的隐藏文件。'

到目前为止,我有:

ls -a。* | wc -l我得到一个返回的整数

我的命令是否正确?

4 个答案:

答案 0 :(得分:2)

在当前目录中:

ls -1 | wc -l

或指定完整路径:

ls -1 /path/to/dir | wc -l

- 注意ls的密钥不是l,而是1 - 这将跳过“隐藏”文件(以.开头的文件)。如果你想包括它们,那么:

ls -1a /path/to/dir | wc -l

- 但请注意,将包含.(当前目录指针)和..(父目录指针),因此您可能希望从结果编号中减去2。

答案 1 :(得分:1)

  

我的命令是否正确?

没有。在说出ls -a .*之后,除了返回..

之外,该命令还会返回以..开头的目录中的文件

为了display the number of files in my home directory including hidden files that begin with a '.',请说:

find $HOME -type f | wc -l

如果要将其限制为仅限于HOME目录,请说:

find $HOME -maxdepth 1 -type f | wc -l

答案 2 :(得分:1)

您也可以使用find

find ~ -type f | wc -l

find ~ -type f -maxdepth 1 | wc -l

如果您不想以递归方式找到。

答案 3 :(得分:0)

具有更多管道的YA非递归命令:

ls -la | awk '{ print $1 }' | grep -v total | grep -v d | wc -l

最佳非递归 - 作为上述同事,但为了避免警告,请在类型选项之前输入maxdepth:

find ~ -maxdepth 1 -type f | wc -l

递归:

find ~ -type f | wc -l