답변:
GNU ls
(임베디드 Linux 및 Cygwin의 버전, 때로는 다른 곳에서도 있음)를 사용하여 디렉토리를 나열 할 때 일부 파일을 제외 할 수 있습니다.
ls -I 'temp_log.*' -lrt
(의 긴 형식은 -I
입니다 --ignore='temp_log.*'
)
zsh를 사용하면 셸에서 필터링을 수행 할 수 있습니다. 패스 -d
에 ls
일치하는 디렉토리의 내용을 나열 피하기 위해.
setopt extended_glob # put this in your .zshrc
ls -dltr ^temp_log.*
ksh, bash 또는 zsh와 함께 ksh 필터링 구문을 사용할 수 있습니다. zsh에서 setopt ksh_glob
먼저 실행하십시오 . bash에서 shopt -s extglob
먼저 실행하십시오 .
ls -dltr !(temp_log.*)
-Itemp_log.*
어떤 공간없이 후-I
-I
좋습니다. 그러나 *
어떤 방식 으로든 인용해야합니다. -I temp_log.*
작동하지 않지만 -I 'temp_log.*'
, -I "temp_log.*"
, -I temp_log.\*
, 등은 정상입니다.
find
이것을 위해 사용할 수 있습니다 :
find . \! -name 'temp_log*'
이름을 인쇄하고 타임 스탬프 및 권한 -ls
으로 ls -l
스타일 출력을 추가 하거나 -exec ls {} +
열, 정렬 등에 원하는 옵션을 사용 하여 실제로 ls에 전달하는 데 사용할 수 있습니다.
나는 이것이 디렉토리에있는 파일이라고 가정하여 이것을 썼습니다. 디렉토리에 다른 디렉토리가 포함되어 있으면 재귀 적으로 나열하지 않도록 할 수 있습니다
find . \! -name 'temp_log*' -maxdepth 1
ls를 사용하면 -d 옵션을 전달 하여 디렉토리 내부에 나열되지 않도록 할 수 있습니다.-exec ls -d {} +
-maxdepth 1
비 재귀를 모방하기를 원할 것 ls
입니다.
의 기능이 아닌 쉘의 기능을 사용하고 싶다고 생각합니다 ls
. bash를 사용하므로에서 원하는 것을 확인했습니다 man bash
. "^ EXPANSION"을 검색하십시오 (먼저 '/'를 누름). 발췌 :
확장
︙
확장은 단어로 분할 된 후 명령 행에서 수행됩니다. 괄호 확장 , 물결표 확장 , 매개 변수 및 변수 확장 , 명령 대체 , 산술 확장 , 단어 분할 및 경로 이름 확장의 7 가지 확장이 수행 됩니다.
... <싹둑>>
︙경로명 확장
하지 않는 단어 분할 한 후, -f 옵션이 설정되어, 배쉬는 문자에 대한 각 단어를 검색
*
,?
및[
. 이러한 문자 중 하나가 나타나면 단어는 패턴으로 간주되고 패턴 과 일치하는 알파벳순으로 정렬 된 파일 이름 목록으로 대체됩니다. …
최근에 첫 번째 문자를 기반으로 파일을 제외하기 시작했습니다.
$ ls ./[^t]*
이것은 글자로 시작하지 않는 것과 일치합니다 t
. 대괄호 사이에 문자를 더 추가하면 해당 문자로 시작하는 파일도 제외됩니다.
링크를 찾고 좋은 링크를 찾았습니다! 패턴 일치를 참조하십시오 . 거기에서 이것은 귀하의 경우에 효과가 있습니다.
$ ls -lrt ./!(temp_log.*)
이를 위해서는 Gilles가 언급 한대로 extglob
쉘 옵션이 shopt
내장 ( shopt -s extglob
)을 사용하여 활성화 되어야합니다 .
파일 때문에 당신은 그나마 인쇄 싶다 "temp_log을."가 파일 이름에서 grep을 사용하여 필터링하십시오.
ls -lrt | grep -v "temp_log."
참고 : 사용자가 grep에서 찾아야하는 문자열 주위에 따옴표 ""를 포함하지 않았기 때문에 비슷한 답변을 가진 다른 게시물이 다운 보트되었을 수 있습니다. 따옴표가 없으면 광고 된대로 작동하지 않습니다.
temp_log
. 이것은 ls
결과 를 제외하는 좋은 (일반적인) 방법이 아닙니다 .
-F
@ smokes2345 만 ; 마침표는 기본 정규 표현식의 모든 문자와 일치합니다. 다음을 참조하십시오 : unix.stackexchange.com/q/119905/117549
ls --hide='temp_log.$$'
작동해야합니다. 전체 용어의 어느 부분인지에 따라 와일드 카드로이를 확장 할 수도 있습니다temp_log.$$
.