lsにどのくらいのオプションがあるかを学びます

lsにどのくらいのオプションがあるかを学びます

練習のために、lsコマンドにいくつかのオプションがあるかどうかを知りたいです。私は次のコードを書いた

man ls | grep -o -i '\-[a-z0-9]$' 

このコードはなぜ印刷するのですか-C and -V

答え1

分析してみるとls --helpもっと簡単なようです。長いオプションを除いて、grepPCRE()と一緒に使用されます-P。例--all:

ls --help | grep -Po '^\s+\K-[^,\s](?=,|\s)' 

解析はman ls同じ結果を提供します。

man ls | grep -Po '^\s+\K-[^,\s](?=,|\s)'

例:

分析ls --help:

% ls --help | grep -Po '^\s+\K-[^,\s](?=,|\s)' 
-a
-A
-b
-B
-c
-C
-d
-D
-f
-F
-g
-G
-h
-H
-i
-I
-k
-l
-L
-m
-n
-N
-o
-p
-q
-Q
-r
-R
-s
-S
-t
-T
-u
-U
-v
-w
-x
-X
-Z
-1

分析man ls:

% man ls | grep -Po '^\s+\K-[^,\s](?=,|\s)'
-a
-A
-b
-B
-c
-C
-d
-D
-f
-F
-g
-G
-h
-H
-i
-I
-k
-l
-L
-m
-n
-N
-o
-p
-q
-Q
-r
-R
-s
-S
-t
-T
-u
-U
-v
-w
-x
-X
-Z
-1

答え2

すべてのオプションがマニュアルページ行の最後の項目ではないため、実際には最後の項目であるオプションはほとんどありません。

たとえば、ほとんどのオプション行は次のようになります。-a, --all

すべてのコンテンツを入手できるかどうかは100%確信できませんが、次のことを試してください。

$ man ls | grep -E -o -i -- ' {7}-[a-z0-9], --[A-Z]+| {7}-[A-Z0-9] | {7}--[A-Z0-9]+' | 
    sed -e 's/^  *//'
-a, --all
-A, --almost
--author
-b, --escape
--block
-B, --ignore
-c 
-C 
--color
-d, --directory
-D, --dired
-f 
-F, --classify
--file
--format
--full
-g 
--group
--sort
-G, --no
-h, --human
--si
-H, --dereference
--dereference
--hide
--indicator
-i, --inode
-I, --ignore
-k, --kibibytes
-l 
-L, --dereference
-m 
-n, --numeric
-N, --literal
-o 
-p, --indicator
-q, --hide
--show
-Q, --quote
--quoting
-r, --reverse
-R, --recursive
-s, --size
-S 
--sort
--time
--time
-t 
-T, --tabsize
-u 
-U 
-v 
-w, --width
-x 
-X 
-Z, --context
-1 
--help
--version

これにより、短期オプションと長期オプションの両方が提供されます。

上記はGNUに適用されますls。他のバージョンでは動作する場合も動作しない場合もあります。ls

関連情報