이상한 문제가 발생했습니다. ls -l *.xml특정 디렉토리에서 실행하려고 하는데이 작업을 수행 하면 메시지가 나타납니다.
ls: invalid option -- .
Try ls --help' for more information.
위와 같은 잘못된 옵션 메시지가 표시되는 동일한 디렉토리에서 비슷한 작업을 수행 ls -l *.php하거나 ls -l *.txt제대로 작동하는 경우 나에게도 낯선 점은 ls -l *.xml다른 디렉토리에서 작업하면 제대로 작동하며 한 디렉토리에서와 같이 잘못된 옵션 메시지를 표시하지 않는다는 것입니다.
ls -l *.xml디렉토리에서 루트 및 일반 로그인으로 시도했지만 동일한 잘못된 옵션 메시지가 표시됩니다.
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한 디렉토리에서는 작동하지 않지만 다른 디렉토리에서는 제대로 작동하는 이유는 무엇 입니까?
편집하다:
greps 배관 ls -l을 시도했지만이 오류가 발생했습니다. 그래도 ls -l *.xml다른 디렉토리에서 아무런 문제없이 작동 하므로 grep으로 파이프 해야하는 이유를 모르겠습니다 . 전에 그것을 잡을 필요가 없었습니다.
ls -l | grep .xml
grep: invalid option -- .
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
-.xml. 파일 이름의 대시로 인해 문제가 발생한 것 같습니다. 실제로 파일 rm -.xml이름이 rm실패 했기 때문에 파일을 삭제할 수도 없었습니다 . 그래픽 SFTP 클라이언트를 통해 디렉토리로 이동하여 삭제해야했습니다. 파일이 제거되면 모두 다시 작동하는 것 같습니다.
ls -l -- *.xml작동합니다. grep 오류를 재현 할 수 없지만 ls -l | grep *.xml비슷한 오류가 발생했습니다. 명령은 다음 ls -l | grep '\.xml$'과 같아야합니다 . 명령은 AxmlB 와 같은 이름을 찾습니다 (영숫자가 아닌 작은 따옴표 검색 문자열).
ls -la하시기 바랍니다. 이름이 시작--하거나 비슷한 파일이 있다고 생각 합니다.