web-dev-qa-db-ja.com

端末コマンドの疑問符は何を意味しますか?

この質問( どうすればkubuntu 12.04インストールからgnomeを削除できますか? )には疑問符の付いたコマンドがあります:

Sudo apt-get remove --purge ubuntu-desktop
Sudo apt-get remove --purge unity?
Sudo apt-get remove --purge gnome?

彼らはどういう意味ですか?

11
Ooker

それらはと呼ばれますワイルドカード(グロビングパターン)

標準のワイルドカード(グロビングパターンとも呼ばれる)は、複数のファイルを操作するためにさまざまなコマンドラインユーティリティで使用されます。
標準のワイルドカードは、ほぼすべてのコマンドで使用されます(mv、cp、rmなど)。

  • (question mark)

    これは任意の1文字を表すことができます。コマンドラインで「hd?」などの何かを指定した場合GNU/Linuxは、hda、hdb、hdc、およびa〜z、0〜9のその他すべての文字/数字を探します。

  • *(asterisk)

    これは、任意の数の文字(ゼロ、つまりゼロ以上の文字を含む)を表すことができます。 「cd *」を指定した場合、「cda」、「cdrom」、「cdrecord」、および「cd」自体も含む「cd」で始まるものが使用されます。 「m * l」は、mill、mull、ml、およびmで始まりlで終わるものであれば何でも可能です。

  • [ ] (square brackets)

    範囲を指定します。 m [a、o、u] mを実行すると、mam、mum、momになります。m[a-d] mは、mで始まりaからdまでの任意の文字を持つ任意の文字になります。たとえば、mam、mbm、mcm、mdmなどが機能します。この種類のワイルドカードは、「または」関係を指定します(一致するのは1つだけです)。

  • { } (curly brackets)

    用語はコンマで区切られ、各用語は何かの名前またはワイルドカードでなければなりません。このワイルドカードは、ワイルドカードまたは正確な名前(「または」関係、どちらか一方)に一致するものをすべてコピーします。


たとえば、これは有効です。

  • cp {。doc、。pdf}〜

    これにより、.docまたは.pdfで終わるものはすべてユーザーのホームディレクトリにコピーされます。コンマ(またはその他の場所)の後にスペースを使用することはできません。

  • [!]

    この構造は[]構造に似ていますが、[と]の間にリストされていない限り、括弧内の任意の文字と一致するのではなく、任意の文字と一致します。これは論理否定です。たとえば、rm myfile [!9]はすべてのmyfiles *(myfiles1、myfiles2など)を削除しますが、名前内の9番のファイルは削除しません。

  • \ (backslash)

    「エスケープ」文字として使用されます。つまり、後続の特殊文字を保護します。したがって、「\」は円記号を検索します。引用符と円記号を使用する必要がある場合があります。

その他の例: このページにアクセス

14
user259474

一般的に、Bashでは、?は任意の文字に展開されるグロブパターンです。

例えば:

$ echo Hello1 > foo1
$ echo Hello2 > foo2
$ cat foo?
Hello1
Hello2

*に似ていますが、*以上文字に展開され、?正確に1に展開されます(任意の)文字。

ただし、特殊なケースでは、コマンドの?は明らかにタイプミスでした。

17
Malte Skoruppa