我试图绕着' ls -d'命令。
我执行命令' ls -d'在任何给定的目录中,我得到的只是一个'。'
我运行命令' ls -d * /而我只得到目录
我运行命令-ls -d *并获取所有文件,包括那些不是目录的文件。
手册页只是说明了这一点:
list directories themselves, not their contents
有人可以帮忙解释一下这个开关应该如何工作吗?
答案 0 :(得分:1)
要理解的事情是:
ls
列出了当前目录,默认情况下称为.
。ls -d
使ls
显示其列出的目录,而不是该目录的内容。您描述的行为都遵循:
ls -d
的.
显示您所在的目录 - 默认目标ls
,但没有给出任何参数。ls -d */
告诉你的shell运行ls
,当前一个作为参数传递的每个目录;然后ls -d
显示每个参数的条目,表现为报告。ls -d *
告诉你的shell运行ls
,当前目录中的每个条目都作为参数传递。 ls
然后为每个这样的参数列出一个条目,而不是显示每个参数的内容,否则它将是目录名称。