1

名前が「-a」、「-f」などのフラグであるファイルをどのように処理するのか疑問に思っていました.rmまたはlsのようなプログラムに引数として渡すことはできません。これらはフラグとして解釈され、実行rm *またはls *実行するだけだからですファイル名のフラグを持つプログラム (明らかな理由から)。プログラムの引数でフラグを通常のファイル名として渡すにはどうすればよいですか?

4

1 に答える 1

8

一般的なトリックは、次のプレフィックスを付けること./です。

edd@max:/tmp$ touch ./-a ./-b ./-c
edd@max:/tmp$ ls -l ./-*
-rw-rw-r-- 1 edd edd 0 May 22 21:07 ./-a
-rw-rw-r-- 1 edd edd 0 May 22 21:07 ./-b
-rw-rw-r-- 1 edd edd 0 May 22 21:07 ./-c
edd@max:/tmp$ rm ./-*
edd@max:/tmp$ ls -l ./-*
ls: cannot access ./-*: No such file or directory
edd@max:/tmp$ 
于 2013-05-23T02:08:31.867 に答える