답변:
쉘에 도트 파일을 나열하고 ls디렉토리를 보지 말라고 지시하십시오.
ls -d .*
grep기반 접근 방식 과 달리 다중 열 목록을 허용한다는 이점이 있습니다 .
ls -d .* | grep -v '^d'또는 (zsh 만 해당)print -lr .*(.)
기록을 위해 이것은 ls -a2 개 (때로는 더 많은 열)를 인쇄하기 때문에 나와 함께 작동하지 않는 것 같습니다 . -1모든 파일이 자체 줄에 있는지 확인 하는 옵션을 사용하는 것이 좋습니다 . 이 같은:
alias hidden='ls -a1 | grep "^\."'
ls -a | cat2 열에 여전히 출력을 시도 했습니다. GNU ls가 아닌 Solaris를 사용하고 있다고 언급해야합니다. 아마도 그럴 수도 있습니다. 모든 경우에 귀하의 -1솔루션은 완벽하게 작동했으며 내 해킹 해결 방법보다 훨씬 우아합니다. 답변을 업데이트하고 있습니다.
약간 더 복잡하게 만들지 만 구문 분석을ls 피하십시오 .
llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }
lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }
두 쉘 함수는 find현재 디렉토리 또는 명령 행에 제공된 디렉토리에 모든 숨겨진 일반 파일 목록을 생성하는 데 사용 됩니다.
이 llsh함수는와 같은 단일 열 목록 ls -l을 lsh생성하는 동안 "긴 목록" 을 생성합니다 ls -1.
# add it to ~/.bashrc
hidden() { # lists hidden files and directories
find . -maxdepth 1 -name '.?*' -exec ls --color -d {} \;
}
hiddenfiles() { # lists hidden files
find . -maxdepth 1 -type f -name '.?*' -exec ls --color -d {} \;
}
hiddendirs() { # lists directories
find . -maxdepth 1 -type d -name '.?*' -exec ls --color -d {} \;
}
당신의 ls지원은 -A입니까? 보낸 사람 man ls:
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
$ ls --version
ls (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.
only. 하지만 숨겨진 파일을 원했습니다 .
ls -A -1 -d -F .* | egrep -v '/$'
간단히 아래 명령을 입력하고 위에서 설명한 내용과 혼동하지 마십시오.
ls -A -1 -d -F .* | egrep -v '/$'
ls플래그와 egrep명령이 어떻게 그리고 왜 질문에 대답 하는지 설명해야합니다 .
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"
'ls -a | grep '"'"'^\.'"'"'그것은 끔찍해 보입니다 (이 예제의 경우 두 쌍 중 하나에 대해 큰 따옴표를 바꿀 수 있기 때문에 완전히 불필요합니다). 그러나 매우 드문 경우에 유용합니다.-C플래그 를 원할 수도 있습니다 (다중 열 출력 강제). 이미지 참조 imgur.com/a/VIVFP