Linux Shell中的 -(短横线)

在Shell中,使用-来表示标准输入或标准输出是一种常见的技巧,它可以让命令更加灵活和强大。以下是一些类似的技巧和详细说明:

1. 使用-表示标准输入或输出

  • tar
    • 打包并输出到标准输出tar -cf - ,将目录打包后输出到标准输出,可以用于管道传输。
    • 从标准输入解包tar -xf -,从标准输入读取归档文件并解包。
  • gzipgunzip
    • 压缩并输出到标准输出gzip -c ,将文件压缩后输出到标准输出。
    • 从标准输入解压gunzip -c,从标准输入读取压缩文件并解压。
  • cat
    • 从标准输入读取数据cat -,从标准输入读取数据并输出到标准输出。这在处理管道数据时非常有用。
  • ssh
    • 从标准输入读取命令ssh @ 'bash -s' < script.sh,将本地脚本通过标准输入发送到远程主机并执行。

2. 使用-表示文件名

  • diff
    • 比较标准输入和文件diff - ,将标准输入的内容与指定文件进行比较。
  • patch
    • 从标准输入应用补丁patch -i -,从标准输入读取补丁文件并应用。
  • sort
    • 从标准输入读取数据并排序sort -,从标准输入读取数据并输出排序后的结果。

3. 使用-表示选项的默认值

  • ls
    • 列出标准输入中的文件ls -,从标准输入读取文件名并列出。
  • cp
    • 从标准输入读取文件名并复制cp -,从标准输入读取文件名并复制到目标位置。

4. 使用-表示设备文件

  • dd
    • 从标准输入读取数据并写入设备dd if=- of=/dev/sdx,从标准输入读取数据并写入指定设备。
    • 从设备读取数据并输出到标准输出dd if=/dev/sdx of=-,从设备读取数据并输出到标准输出。

5. 使用-表示特殊文件

  • mkfifo
    • 创建命名管道mkfifo -,创建一个命名管道文件,用于进程间通信。
  • mktemp
    • 创建临时文件mktemp -,创建一个临时文件并输出其路径。

6. 使用-表示默认行为

  • echo
    • 从标准输入读取数据并输出echo -,从标准输入读取数据并输出。
  • printf
    • 从标准输入读取数据并格式化输出printf -,从标准输入读取数据并按指定格式输出。

7. 使用-表示特殊选项

  • find
    • 从标准输入读取文件名并执行操作find -,从标准输入读取文件名并执行指定的操作。
  • xargs
    • 从标准输入读取数据并执行命令xargs -,从标准输入读取数据并执行指定的命令。

总结

这些技巧使得Shell命令更加灵活和强大,能够处理各种复杂的场景。通过使用-,你可以将命令的输入和输出重定向到标准输入或标准输出,从而实现数据的管道传输、文件处理、设备操作等。这些技巧在实际工作中非常有用,可以大大提高工作效率。

你可能感兴趣的:(Linux,Shell,linux,运维,服务器)