ls -A 有什么作用?

ls -A 有什么作用?

ls -A 有什么作用?我找到了这个 shell 脚本,但我不知道 ls -A 的作用。说明书上是这样写的,ls -A == do not list implied . and ..但我不明白这是什么意思。

dir=./$1
if [[ -z $(ls -A $dir) ]]

答案1

通常ls不打印以点开头的文件名。对于-a,确实如此,但其中包括...,它们存在于所有目录中,因此不是很有趣。用-A它打印除这两个之外的所有内容。

$ touch normal .hidden
$ ls
normal
$ ls -a
./  ../  .hidden  normal
$ ls -A
.hidden  normal

在该 if 语句中,命令替换$( .. )捕获 的输出ls,并[[ -z ... ]]测试它是否为空字符串。也就是说,目录中没有文件。

通常,读取 的输出ls并不是一个好主意,如果你想在 shell 中循环文件,你可以使用*.不过,在这里,它应该可以工作,除了以下事实:如果给定的目录名包含空格(或文件名全局字符),它们将在 的命令行上展开ls,这可能会弄乱结果。

看:

相关内容