代码之家  ›  专栏  ›  技术社区  ›  xmllmx

$(gcc-xc++-E-v-)中的最后一个破折号是什么意思?[副本]

  •  1
  • xmllmx  · 技术社区  · 4 年前

    示例:

    • 创建ISO映像并将其直接刻录到CD上。

      mkisofs -V Photos -r /home/vivek/photos | cdrecord -v dev=/dev/dvdrw -

    • 切换到上一个目录。

      cd -

    • 在端口12345上监听并解压缩发送给它的数据。

      nc -l -p 12345 | tar xvzf -

    破折号的用途是什么?我该如何使用它?

    0 回复  |  直到 7 年前
        1
  •  147
  •   paxdiablo    13 年前

    如果你是说裸体 - 在最后 tar 命令,这在许多想要使用文件的命令中很常见。

    它允许您指定标准输入或输出,而不是 实际的 文件名。

    这就是你的第一个和第三个例子。例如 cdrecord 命令正在接受标准输入(由生成的ISO图像流) mkisofs )并直接将其写入 /dev/dvdrw .

    随着 cd 命令,每次更改目录时,它都会存储您来自的目录。如果你这样做 cd 与特殊 - “目录名”,它使用记住的目录而不是真实的目录。通过使用它,您可以很容易地在两个目录之间快速切换。

    其他命令可能会处理 - 作为一个 不同的 特殊价值。

        2
  •  30
  •   Ignacio Vazquez-Abrams    13 年前

    这不是魔法。一些命令解释 - 当用户想要从stdin读取或写入stdout时;这个贝壳没什么特别的。

        3
  •  19
  •   Keith Thompson    9 年前

    - 确切地表示每个命令所希望的含义。有几个常见的约定,你在其他答案中看到了其中大多数的例子,但它们都不是100%通用的。

    这并没有什么神奇之处 - 就shell而言,字符(除了shell本身及其一些内置命令,如 cd echo ,以传统方式使用)。有些角色,比如 \ , ' ,以及 " , “神奇”,无论出现在哪里都有特殊的含义。这些是“shell元字符”。 - 事情并非如此。

    查看给定命令的使用方式 - , 阅读该命令的文档 .

        4
  •  8
  •   Nate Anderson    5 年前

    这意味着使用程序的标准输入流。

    假使 cd ,它意味着不同的东西:更改到之前的工作目录。

        5
  •  6
  •   William Pursell    13 年前

    魔术就在大会上。几千年来,人们一直用“-”来区分选项和参数,并在文件名中使用“-”表示stdin或stdout(视情况而定)。不要低估传统的力量!