ls -l *.xml 命令在一个目录中不起作用的问题

ls -l *.xml 命令在一个目录中不起作用的问题

我遇到了一个奇怪的问题。我试图ls -l *.xml在特定目录中执行一个,但是当我这样做时,我收到了消息

ls: invalid option -- .
Try ls --help' for more information.

如果我执行类似ls -l *.php或的操作ls -l *.txt,它会在收到上述无效选项消息的同一目录中正常工作。令我更奇怪的是,如果我ls -l *.xml在任何其他目录中执行此操作,它会正常工作,并且不会像在一个目录中那样给出无效选项消息。

我尝试ls -l *.xml以 root 和正常登录身份在目录中执行此操作,但出现相同的无效选项消息。

type ls
ls is aliased to `ls --color=tty'

which ls
alias ls='ls --color=tty'
    /bin/ls

whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

我是不是疯了?哪里出了问题?为什么ls -l *.xml在一个目录中不起作用,而在其他目录中却能正常工作?

编辑:

尝试将 ls -l 管道传输到 grep,但出现此错误。不确定为什么我需要将其管道传输到 grep,因为ls -l *.xml在任何其他目录中都可以正常工作。以前从未需要对其进行 grep。

ls -l | grep .xml
grep: invalid option -- .
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

答案1

由于*.xmlglob 将扩展到.xml当前目录中的所有文件,因此我假设 glob 将扩展为解析为的内容

ls -l -- .....

或类似的,即以 开头的文件--

尝试通过使用 进行简单列表来找出该文件是什么ls -la

尝试使用 删除该文件rm -- --filename--如果您希望文件名不被解析为选项,则需要 。或者,您可以从 GUI 中删除它,或者使用rm "--filename"

答案2

尝试一下ls -l | grep .xml。我不确定像 ls -l *.xml 这样的东西如何工作,因为我的印象是,如果你试图将结果缩小到单个文件格式,通常管道和 grep 会有所帮助。

相关内容