命令列出除以外的所有文件。 (点)和..(点点) - Linux

时间:2014-03-14 14:13:44

标签: linux

我试图找到一个列出所有文件(包括隐藏文件)的命令,但必须排除当前目录和父目录。请帮忙。

   $ ls -a \.\..

3 个答案:

答案 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'