红联Linux门户
Linux帮助

Shell 符号

发布时间:2006-10-02 00:04:54来源:红联作者:coolentboy
  针对许多频繁使用的命令行参数,Shell 提供了相应的符号 或记号作为简写。您只需输入这些符号来代替相应的参数。

  如上所述,~ 表示您的 home 目录。与之类似的简写形式 ~username 表示 username 的 home 目录。例如,~joe 表示 joe 的 home 目录,所以,要将文件从 joe 的 doc 目录复制到您的 info 目录,您可以输入下面的命令:

[code]$ cp ~joe/doc/report.txt ~/info[/code]

  假设 joe 的 home 目录位于 /guests,而您的 home 目录为 /staff/bobr,~joe 将由 /guests/joe 替换,而 ~ 则变成 /staff/bobr,最后产生命令 cp /guests/joe/doc/report.txt /staff/bobr/info。

  另一个有用的符号是 ..(两个点号),这是当前目录的父目录的简写。使用 .. 和 .(当前工作目录的简写符号),您可以引用文件系统中相对于当前工作目录的文件和目录。

  例如,如果您的当前工作目录为 ~/jane/projects/lambda,那么简写 ../.. 表示向上两级目录的目录,即 ~/jane。要表示包含 ~/jane 的目录,您可以使用 ../../../(“向上三级目录”)或路径 ~jane/../。后面的这个路径表示从 ~jane 开始,然后转到上一级目录。

  要将文件复制到您的当前目录,不需要指定目标目录,可以直接使用 .(“点”)来表示:

[code]$ cp -pr /path/to/lots/of/stuff[/code]


  前面的命令将 /path/to/lots/of/stuff 目录递归地复制到您的当前目录,并保持其原始的时间和日期戳。引用 .. 和 . 的路径名称为相对路径名。以 /(正斜杠)或 ~(波浪符号)开头的路径名称为绝对路径名,因为您是从文件系统的顶端、或从一个目录层次结构的顶端开始来引用相应的文件。
文章评论

共有 1 条评论

  1. coolentboy 于 2006-10-02 00:05:28发表:

      检验您的工作

      如果您想要查看命令行符号扩展后的结果,可以使用 echo 命令:

    [code]$ echo ~joe/doc/report.txt ~/info
    /guests/joe/doc/report.txt /staff/bobr/info

    $ echo $SHELL
    /bin/zsh

    $ ls
    architecture.txt Services.pdf
    services.txt Schema.pdf

    $ echo *.txt
    architecture.txt services.txt[/code]

      echo 命令将完整地表达您在命令行中输入的内容。然而,因为 Shell 会在调用任何程序之前,对(大多数)命令行参数进行扩展,所以该命令将打印出所有替换的结果。(Shell 环境变量 $SHELL 包含当前正在运行的 Shell 的名称。)