您能否解释一下该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 命令都附带在线手册,解释其用法以及修改其行为的各种选项。可以使用命令man
ie访问手册
尝试man man
以获得手册的解释。