标签: options

如何删除名称以“-”(连字符又名破折号或减号)开头的文件?

如何删除文件名以破折号(连字符或减号)开头的文件-?我通过 ssh 连接到远程 OSX 服务器,并且我的目录中有这个文件:

tohru:~ $ ls -l
total 8
-rw-r--r--    1 me  staff  1352 Aug 18 14:33 --help
...
Run Code Online (Sandbox Code Playgroud)

我怎么--help能从 CLI 中删除?这个问题是我偶尔以不同形式遇到的问题,这些文件很容易创建,但很难摆脱。

我试过使用反斜杠

rm \-\-help
Run Code Online (Sandbox Code Playgroud)

我试过引号

rm "--help"
Run Code Online (Sandbox Code Playgroud)

如何防止将减号(破折号或连字符)字符解释为选项?

command-line shell options quoting rm

428
推荐指数
6
解决办法
18万
查看次数

如何在远程机器上执行本地脚本并包含参数?

我编写了一个在本地执行时运行良好的脚本:

./sysMole -time Aug 18 18
Run Code Online (Sandbox Code Playgroud)

参数"-time""Aug""18""18"成功传递给脚本。

现在,这个脚本被设计为在远程机器上执行,但是从本地机器上的本地目录执行。例子:

ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole
Run Code Online (Sandbox Code Playgroud)

这也很好用。但是当我尝试包含上述参数(-time Aug 18 18) 时,问题就出现了,例如:

ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole -time Aug 18 18
Run Code Online (Sandbox Code Playgroud)

运行该脚本后,我收到以下错误:

bash: cannot set terminal process group (-1): Invalid argument
bash: no job control in this shell
Run Code Online (Sandbox Code Playgroud)

请告诉我我做错了什么,这非常令人沮丧。

shell scripting bash options shell-script

145
推荐指数
2
解决办法
26万
查看次数

GNU grep 的 -X 选项的实际目的是什么,为什么它没有记录?

通过阅读这个问题,我发现 GNUgrep有一个-X需要参数的选项。奇怪的是,手册页和信息页中都没有提到它。

查看源代码,输出中间--help有该注释:

/* -X is deliberately undocumented.  */
Run Code Online (Sandbox Code Playgroud)

进一步看,似乎该-X matcher选项设置用于正则表达式引擎matcher一个 grepegrepfgrepawkgawkposixawkperl(截至2.25版本)。

一些这些值是严格相同的现有选项(即grep -Ggrep -Egrep -Fgrep -P)。另一方面,这三个awk变体没有相应的选项。

有人知道这个选项的实际目的是什么,尤其是使用正则awk表达式引擎之一?有人能告诉我为什么故意没有记录吗?

grep options

59
推荐指数
1
解决办法
3389
查看次数

cp -L 与 cp -H

问题

使用cp -H或复制文件时cp -L,我得到相同的结果:

$ ls -l fileA
  fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
  fileA     # fileA is a copy of fileB, only renamed, with same properties!
Run Code Online (Sandbox Code Playgroud)

此处的此答案将两个选项描述为类似,除非与-R. 不适合我。Soft- as hardlinked 文件成为它们指向源文件的重命名副本。
 

问题

cp -H和的正确用法是cp -L什么?这是预期的行为吗?


  我试图解决: man cp两个选项告诉我的结果完全相同,但是info cp措辞让我更加困惑。也许有人可以帮我分解一下:

-H 如果命令行参数指定了符号链接,则复制它指向的文件而不是符号链接本身。但是,复制(保留其性质)通过递归遍历遇到的任何符号链接

这对我来说听起来很矛盾:我猜»符号链接的性质«是它指向某个地方......

-L, --dereference 从符号链接复制时遵循符号链接。使用此选项,cp无法创建符号链接。例如,源树中的符号链接(到常规文件)将被复制到目标树中的常规文件中。

我确实知道符号链接不是常规文件,但是……我承认我对这里的解释感到困惑。

linux command-line options cp coreutils

58
推荐指数
2
解决办法
12万
查看次数

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

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

$ 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
查看次数

单破折号 `-` 表示单字符选项,双破折号 `--` 表示单词?

字母使用单破折号和单词使用双破折号的惯例从何而来,为什么继续使用?

例如,如果我输入ls --help,您会看到:

  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print octal escapes for nongraphic characters
      --block-size=SIZE      use SIZE-byte blocks
  -B, --ignore-backups       do not list implied entries ending with ~
...
Run Code Online (Sandbox Code Playgroud)

我尝试使用谷歌搜索- and -- convention即使没有成功的报价。

command-line options history

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

为什么 ls -d 也列出文件,它在哪里记录?

  • 指定ls --directory a*时应仅列出以开头的目录a*
  • 但它列出了以开头的文件和目录 a

问题

  • 我在哪里可以找到一些这方面的资料,比其他maninfo在那里我觉得我完全看?
  • 这仅在 BASH 中有效吗?

ls shell bash options wildcards

51
推荐指数
3
解决办法
1万
查看次数

grep/egrep 是否有“rc”配置文件?(~/.egreprc?)

我通常grep在开发时使用,并且有一些扩展我总是想排除(例如*.pyc)。

是否可以创建一个~/.egreprc或类似的东西,并添加过滤以pyc从所有结果中排除文件?

这是可能的,还是我必须创建一个grep以这种方式使用的别名,并调用别名而不是grep

grep configuration options alias

46
推荐指数
1
解决办法
9450
查看次数

getopt、getopts 或手动解析 - 当我想同时支持短选项和长选项时使用什么?

目前我正在编写一个 Bash 脚本,它具有以下要求:

  • 它应该可以在各种 Unix/Linux 平台上运行
  • 它应该支持短和(GNU)长选项

我知道这getopts将是可移植性方面的首选方式,但 AFAIK 它不支持长选项。

getopt支持长选项,但BashGuide强烈建议反对它:

永远不要使用 getopt(1)。getopt 无法处理空参数字符串或带有嵌入空格的参数。请忘记它曾经存在过。

因此,仍然可以选择手动解析。这很容易出错,会产生相当多的样板代码,而且我需要自己处理错误(我想自己getopt(s)进行错误处理)。

那么,在这种情况下,首选是什么?

bash options shell-script user-interface getopts

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

`-` 只与 cd 一起使用吗?

cd - 可以在当前目录和上一个目录之间切换。

似乎我以前见过-用作其他命令的参数,但我不记得 if-cd.

我发现这-不适用于ls.

- 只用cd吗?

options cd-command arguments

45
推荐指数
5
解决办法
3633
查看次数