我尝试使用管道编写UNIX命令,该管道将显示我的主目录中的文件数,包括以'开头的隐藏文件。'
到目前为止,我有:
ls -a。* | wc -l我得到一个返回的整数
我的命令是否正确?
答案 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