Bash:在主目录中的任何bash命令中使用星号都会退出,并显示错误“无法识别的选项--list-sessions”

问题描述

标题。 如果执行以下命令,则bash中的任何命令似乎都可能发生相同/相似的错误:@H_404_1@

  1. 我的主目录中,即if(io.sockets.adapter.rooms["room name"]) { //if room exist } 之后。在其他地方则不会发生。
  2. 命令中的星号/通配符与所有文件和目录匹配。据我所知,没有星号就不会发生。

示例:@H_404_1@

cd ~

以此类推。 list-sessions标志似乎让人想起这个tmux命令:@H_404_1@

me@mypc:~$ ls *
ls: unrecognized option '--list-sessions'
Try 'ls --help' for more @R_804_4045@ion.
me@mypc:~$ ls
...
Desktop
Downloads
...
(prints all directories)
me@mypc:~$ ls ./*
(prints all subdirectory subdirectories)
me@mypc:~$ ls .*
...
.vscode:
argv.json  extensions

.wine:
dosdevices  drive_c  system.reg  userdef.reg  user.reg
...
(prints all subdirectories with their contents)

me@mypc:~$ du -sch *
du: unrecognized option '--list-sessions'
Try 'du --help' for more @R_804_4045@ion.
me@mypc:~$ du -sch .*
du: cannot read directory './.dbus': Permission denied
du: cannot read directory './.pgadmin': Permission denied
66G .
du: cannot read directory '../postgres/.gnupg': Permission denied
64K ..
66G total

me@mypc:~$ grep "\-\-list-sessions" *
grep: unrecognized option '--list-sessions'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more @R_804_4045@ion.

无论是否运行tmux服务器,其他命令中的list-sessions错误仍然存​​在。 感谢您的帮助!@H_404_1@

解决方法

我猜您的主目录中有一个名为--list-sessions的文件,而*展开后会引起您的命令(例如lsdu )将文件名作为选项:

考虑...

$ mkdir /tmp/ttt
$ cd /tmp/ttt
$ touch -- '--list-sessions'
$ ls -a
--list-sessions  ./  ../

$ ls *
dir: unknown option -- list-sessions
Try 'dir --help' for more information.
$ ls -- *                               # disable further command line option processing
--list-sessions

$ du -k *
du: unknown option -- list-sessions
Try 'du --help' for more information.
$ du -k -- *                            # disable further command line option processing
0       --list-sessions

注意:以上命令中使用的--禁用了进一步的命令行选项处理,例如What does double dash mean?