한 디렉토리에 있는 모든 숨겨진 파일을 나열하려고 하지만 다른 디렉토리는 나열하지 않고 ls와 grep만 사용하여 이 작업을 수행하려고 합니다.
ls -a | egrep "^\."
이것이 내가 지금까지 가지고 있는 것이지만, 문제는 내가 원하지 않을 때 숨겨진 디렉토리도 나열한다는 것입니다.
그런 다음 숨겨진 디렉터리를 완전히 별도로 나열하고 싶습니다.
답변1
목록만숨겨진 파일:
ls -ap | grep -v / | grep "^\."
알아채다문서이것은 디렉토리의 전체 내용이 아닙니다. 다음 위치에 보관되지 않음"리눅스의 모든 것은 파일이다";)
목록만숨겨진 디렉토리:
ls -ap | grep "^\..*/$"
논평:
ls -ap
/
숨겨진 디렉터리를 포함하여 현재 디렉터리의 모든 항목을 나열하고 디렉터리 끝에 추가합니다.grep -v /
grep /
디렉터리가 포함되지 않도록 결과를 반전시킵니다 ."^\..*/$"
.
로 시작하고 끝나는 모든 항목과 일치합니다/
.- 두 번째 부분의 결과에서 및 디렉터리를 제외하려면
.
for 대신 옵션을 사용하거나 정규식을 사용하려는 경우 대신 사용할 수 있습니다...
-A
-a
ls
"^\.[^.]+/$"
"^\..*/$"
재미있게 보내세요!
답변2
및 ..을 포함하여 현재 디렉터리의 숨겨진 파일 및 디렉터리를 나열합니다.
echo .*
현재 디렉터리와 그 하위 디렉터리에 있는 숨겨진 파일과 디렉터리를 반복적으로 나열합니다.
find . -name '.*'
결과를 파일에 저장하려면 리디렉션을 사용하십시오.
find . -name '.*' >output-file.txt
답변3
zsh
(아직 하지 않은 경우) 로 전환 하고 실행하십시오.
ls .*(^/)
괄호 안의 부분을 전역 한정자라고 하며 디렉터리를 제외한 모든 항목이 선택되었음을 의미합니다.
일반 파일에만 관심이 있어 디렉터리뿐만 아니라 다른 특수 파일(이름이 지정된 파이프 등)도 제외하는 경우 시도해 보세요.
ls .*(.)
답변4
다음 명령을 시도해 보세요.
find -maxdepth 1 -type f -name '.*' | sed 's/^..//'
이는 현재 디렉터리(-maxlength 1)에서 "."로 시작하는 파일(-type f)만 찾고, sed 명령은 각 줄에서 "./"를 제거합니다.