我试图找到一个列出所有文件(包括隐藏文件)的命令,但必须排除当前目录和父目录。请帮忙。
$ ls -a \.\..
答案 0 :(得分:24)
阅读ls(1)文档(可能包含man ls
)。至少,养成尝试的习惯
ls --help
或更好(因为ls
可能有别名,例如在~/.bashrc
中)
/bin/ls --help
你会得到一些东西:
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
等...
您希望ls -A
或更好/bin/ls -A
(没有任何其他参数,例如.*
)
答案 1 :(得分:3)
我有一种情况,我想删除一系列的点目录。在我的服务器中,我们标记要删除的目录,添加一个点和某些其他文本模式(时间戳)以便自动删除。有时我需要手动完成。
正如我对Basile Starynkevitch's回复评论的那样,当你使用类似下面的一个模式时,-A开关失去了它的功能,就像-a一样:
data=malloc(sizeof(int)*n);
if (data == NULL)
printf("Error in dynamically allocating memory.\n");
如果我尝试以用户身份删除文件,肯定会出错,但我只是不想想以root用户身份发生什么(!)
我在这种情况下的方法是:
runlevel0@ubuntu:~/scripts$ ls -1dA .*
.
..
.comparepp.sh.swp
我可以看到包含点的第一行第2行。为了定制问题的答案,这将完成这项工作:
for dir in $(ls -1ad .* | tail -n +3) ; do rm -rfv $dir ; done
答案 2 :(得分:0)
$ ls -lA
最能满足我的需求。
为方便起见,我建议如下在.bashrc文件中定义别名:
alias ll='ls -lA'