숨겨진 항목만 나열되는 경우 어떻게 제외하고..할 수 있나요?

숨겨진 항목만 나열되는 경우 어떻게 제외하고..할 수 있나요?

ls -d .*숨겨진 "항목"(파일 및 디렉터리)만 나열합니다. 기술적으로 (제 생각에는) 로 시작하는 모든 프로젝트를 나열합니다 .. 여기에는 현재 디렉터리 .와 위의 디렉터리가 포함됩니다 ...

ls -A또한 "거의 모든" 항목이 나열되고 숨겨진 항목과 숨김 해제된 항목이 나열되지만 .및 는 포함되지 않는다는 것을 알고 있습니다 ... 그러나 이들을 결합해도 ls -dA .*내 숨겨진 항목의 "거의 모든" 항목이 나열되지는 않습니다.

제외하는 방법과 숨겨진 항목만 나열되는 경우는 무엇입니까 .?..

답변1

sum 1 을. 제외한 모든 사례를 결합할 수 있습니다 . 또한 특수 파일 이름도 차단되지 않습니다...

ls -d .[!.]* ..?*

디렉토리에 실제로 내용이 너무 많고 명령이 실패할 위험이 있는 경우 Argument list too long이를 대신 사용할 수 있습니다(그러나 -printf '%f\n'선행을 제거하는 옵션은 ./GNU find에만 해당되며 -maxdepthPOSIX에는 존재하지 않습니다).

find . -maxdepth 1 -name '.*' ! '(' -name . -o -name .. ')' -printf '%f\n'  

-print0-printf '%f\0'LF와 같은 특수 문자를 처리하려면 유사한 옵션을 사용할 수 있지만 모든 도구는 이를 지원해야 합니다( GNU 전용이 나타나고 로 대체될 수 있지만 -print0선행을 유지하는 경우를 제외하고 GNU 또는 FreeBSD 변형이 이를 지원합니다 ./).

find . -maxdepth 1 -name '.*' ! '(' -name . -o -name .. ')'   -printf '%f\0'| sort -z | xargs -0 [...]

1 :POSIX는 대괄호가 다음으로 시작하도록 지정합니다.[![^정규식과 같은 파일 이름 확장자의 문자를 부정하는 데 사용하면 결과가 지정되지 않습니다(예:세게 때리다허용하다)).

답변2

이것은 다음에서 답변되었습니다.우분투에 물어보세요, 여기서 재현하겠습니다.

ls -d .!(|.)Bash의 확장 glob 사용( shopt -s extglob활성화됨)

ls -d .[!.]* ..?*그렇지 않다면

답변3

.및 없이 숨겨진 파일 만 나열하려는 경우..

ls -ld .[!.]*

숨김 여부에 관계없이 모든 파일을 나열하려면 .다음을 ..사용할 수 있습니다.

ls -lA

여기에는 l긴 목록이 포함되며 A숨김 항목과 숨김 해제 항목 표시가 포함됩니다 ....

-d내용을 나열하지 않고 디렉터리만 나열합니다. 현재 있는 폴더의 내용만 나열하려고 하므로 필요하지 않습니다.

긴 목록을 원하지 않으면 제거하세요 -l.

답변4

UNIX당신이 관찰한 문제는 1970년대 초로 거슬러 올라가는 해커 공격의 결과입니다. 코드 크기를 줄이기 위해 디렉토리에는 실제 디렉토리가 제공되었으며 .항목 ..은 현재 디렉토리 및 이전 디렉토리에 대한 디렉토리 하드 링크로 구현되었습니다. 최신 파일 시스템은 내부 구조가 다릅니다...

이 문제를 해결하는 좋은 방법은 표현식의 일치하는 파일 목록에 및 를 포함하지 않는 쉘을 선택하는 것입니다 .....*

bosh껍질이 바로 그런 것 입니다 mksh. 셸을 테스트하려면 다음을 호출하는 것이 좋습니다.

mkdir /tmp/t
cd /tmp/t
echo .*

결과는 다음과 같습니다.

. ..

다음 결과를 얻으면 셸은 일치하는 결과에 다음 패턴을 포함합니다.

.*

귀하의 쉘은 .결과에서 제외됩니다. ..그러나 이 결과는 항목이 없는 파일 시스템으로 인해 발생할 수도 있으므로 .다음 ..사항 도 확인하십시오.

ls -Fa

이 파일을 나열하십시오.

POSIX이것은 얼마 전에 변경되어 이제 이 동작을 허용합니다. 파일 시스템이 이러한 디렉터리를 물리적으로 지원할 필요조차 없기 때문에 향후 버전 POSIX에서는 일치 결과 에 .및 를 포함하는 것을 허용하지 않을 수 있습니다. ..유일한 요구 사항 POSIX은 해당 경로에 액세스할 때 예상되는 동작을 달성하는 것입니다.

관련 정보