相关疑难解决方法(0)

使用破折号 (-) 代替文件名

对于命令,如果-用作参数代替文件名将意味着 STDIN 或 STDOUT。

  1. 但在这个例子中,它创建了一个名为 的文件-

    echo hello > -
    
    Run Code Online (Sandbox Code Playgroud)

    我怎样才能-在这个例子中表示 STDOUT?

  2. 相反,我怎么能在示例中-命名一个文件-,例如:

    cat -
    
    Run Code Online (Sandbox Code Playgroud)

command-line shell utilities

140
推荐指数
4
解决办法
33万
查看次数

命令末尾的破折号“-”是什么意思?

给出以下命令:

gzip -dc /cdrom/cdrom0/file.tar.gz | tar xvf –
Run Code Online (Sandbox Code Playgroud)

什么是-在命令中到底意味着什么?它是某种占位符吗?

shell filenames

94
推荐指数
2
解决办法
3万
查看次数

`--`(双破折号)参数记录在哪里?

有一些实用程序接受--(双破折号)作为“选项结束”的信号,当文件名以破折号开头时需要:

$ echo "Hello World!" >-file

$ cat -- -file
Hello World!

$ cat -file                      # cat - -file fails in the same way.
cat: invalid option -- 'f'
Try 'cat --help' for more information.
Run Code Online (Sandbox Code Playgroud)

但是其中一些实用程序在手册页中没有显示这样的选项。

man页面cat没有一个文件的使用(或有效性)--的说法在任何OS'es的。这并不意味着是 Unix-Linux 的火焰战争,它是一个有效的,而且我相信,有用的关注。

无论是catmved(我相信许多人)文件中的手册页这样的选择,我可以找到。

请注意,这./-file是使用--. 例如,source(dot) 命令(并写为.)(通常)不适用于--参数:

$ echo 'echo "Hello World!"' >-file

$ . ./-file
Hello World! …
Run Code Online (Sandbox Code Playgroud)

shell documentation options

53
推荐指数
2
解决办法
7502
查看次数

如何“减少”名为“-”的文件?

我不小心创建了一个名称为-(例如,seq 10 > -)的文件。然后我尝试使用less查看它,但它只是挂起。

我知道发生这种情况是因为less -期望输入来自stdin,因此它不会将 解释-为文件名。我试过了,less \-但它也不起作用。

那么,有没有办法表明less-是一个文件而不是标准输入?

我能得到的最好的是:

find -name '-' -exec less {} +
Run Code Online (Sandbox Code Playgroud)

less stdin

17
推荐指数
1
解决办法
3731
查看次数