ls 命令中的 -- 和 -td 选项是什么?

ls 命令中的 -- 和 -td 选项是什么?

您能否解释一下该ls命令中每个选项的作用:ls -td -- */?该命令的结果如下所示:

$ ls
$ ls -al
total 4
drwxr-xr-x   5 root root   68 Jun  4 09:58 .
drwxrwxrwt. 13 root root 4096 Jun  4 10:05 ..
drwxr-xr-x   5 root root   36 May 31 15:48 05-31-2018
drwxr-xr-x   5 root root   36 Jun  4 09:45 06-04-2018
drwxr-xr-x   2 root root    6 Jun  4 09:56 06-05-2018
-rw-r--r--   1 root root    0 Jun  4 09:58 test

$  ls -td -- */ 
06-05-2018/  06-04-2018/  05-31-2018/

# To get latest folder created:
$ ls -td -- */ | head -n 1
06-05-2018/

我不知道每个选项对命令的作用ls

答案1

-td是两个选项-t-d写在一起。-t告诉ls根据时间对输出进行排序,并-d要求将命令行上命名的目录显示为目录本身,而不是其内容。

--据我所知,许多支持它的命令没有明确记录该选项,并且它已经成为一种稍微晦涩的语法。
它发现它的起源于getopt功能并用于分隔选项的结尾和参数的开头

您主要使用该--语法来使用看起来像选项的参数。

一个很好的例子是尝试操作名称以连字符开头的文件,例如名为"-rm -rf"

创建它与touch -- '-rm -rf'

ls -la
total 0
-rw-r--r--   1 herman  wheel    0 Jun  4 16:46 -rm -rf

ls -la *
ls: illegal option --
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

ls -la -- * 
total 0
-rw-r--r--   1 herman  wheel    0 Jun  4 16:46 -rm -rf

rm -i *
rm: illegal option -- m
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

相对

rm -i -- *

对于命令行选项的一般含义,这是一个非常基本的信息:

几乎所有 Linux 命令都附带在线手册,解释其用法以及修改其行为的各种选项。可以使用命令manie访问手册

man ls

尝试man man以获得手册的解释。

相关内容