Command-Line

ls 命令上的 – 和 -td 選項是什麼?

  • June 7, 2018

您能否解釋一下此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命令的作用。

-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命令訪問手動,即

man ls

嘗試man man對手冊進行解釋。

引用自:https://unix.stackexchange.com/questions/448402