ls "*"
이것은 내 디렉토리에 아무것도 표시하지 않습니다. 왜?
*
와일드카드가 모든 것을 보여주지 않나요?
답변1
큰따옴표로 묶인 경우 *
전역으로 간주되지 않으므로 확장되지 않습니다. 따라서 존재하지 않을 수 있는 ls
이름의 파일을 나열 하도록 요청하고 있습니다 .*
모든 파일을 보려면 ls
기본 동작이 현재 디렉터리의 모든 파일을 표시하는 것이므로 인수 없이 실행할 수 있습니다. ls
어떤 이유로든 모든 파일을 인수로 전달하려면 따옴표를 제거하고 다음을 실행하세요 .
ls *
근데 좀 닮음
ls
파일이 많은 경우를 제외하고는 *
너무 많은 인수를 전달하여 디렉터리의 내용을 표시하도록 확장될 수 있으며, ls
그 자체로는 디렉터리가 하위 디렉터리로 내려오지 않고 현재 디렉터리에 있다는 것만 표시합니다.ls *
ls
답변2
ls *.* /Dir (dir is optional)
사용자의 현재 작업 디렉토리(pwd로 검색됨) 또는 /Dir에 있는 모든 파일(파일 유형에 관계없이)을 나열하고
ls * /Dir (dir optional)
사용자의 현재 작업 디렉터리 또는 /Dir에 있는 모든 파일과 디렉터리를 나열합니다. 하지만,
ls "*" & ls *.*
필요하기 때문에 재귀적으로 나열하지 않습니다.
ls -R *.* /Dir
또는
ls -R "*" /Dir
왜인지는
ls "*"
작동하지 않습니다. 맞습니다. *는 다음과 같이 ls를 호출할 때 와일드카드입니다.
ls "*"
이름에 별표가 있는 파일 및/또는 디렉토리를 찾도록 bash에 요청하고 있습니다. IDE를 설치했지만 해당 구성과 기본 파일을 찾을 수 없어서 다음 명령을 사용하여 파일을 찾았습니다.
(패턴과 일치하는 파일을 찾아 특정 파일로 리디렉션)
locate *eclipse* >locate_eclipse.txt
locate *tar* > locate_tar.txt
locate *.tar* > locate_".tar".txt
locate *compiler* > locate_compiler.txt
locate *JRE* > locate_JRE.txt
locate *jre* > locate_jre.txt
(파일시스템 전체를 검색하여 패턴과 일치하는 것만 출력)
ls -R / | grep "eclipse"
ls -R / | grep "tar"
ls -R / | grep ".tar"
ls -R / | grep "compiler"
ls -R / | grep "JRE"
글이 길어져서 죄송하지만 대부분의 기본 사항을 다루려고 노력했습니다.