이름 temp_log.$$
이 있는 많은 파일 (약 200 개)이 확인해야 할 다른 중요한 파일로 만들어 지는 디렉토리 가 있습니다.
모든 파일을 쉽게 나열하고 temp_log.$$
파일이 표시되지 않도록 하려면 어떻게해야합니까?
예상 출력
$ ls -lrt <exclude-filename-part>
-- Lists files not matching the above given string
내가 겪었 ls
man 페이지 만이 참조에서 아무것도 찾을 수 없습니다. 여기서 중요한 정보를 놓친 경우 알려주십시오.
감사
답변
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.*)
답변
grep
옵션과 함께 사용할 수 있습니다 -v
.
ls -lrt | grep -v <exclude-filename-part>
답변
find
이것을 위해 사용할 수 있습니다 :
find . \! -name 'temp_log*'
이름을 인쇄하고 타임 스탬프 및 권한 -ls
으로 ls -l
스타일 출력을 추가 하거나 -exec ls {} +
열, 정렬 등에 원하는 옵션을 사용 하여 실제로 ls에 전달하는 데 사용할 수 있습니다.
나는 이것이 디렉토리에있는 파일이라고 가정하여 이것을 썼습니다. 디렉토리에 다른 디렉토리가 포함되어 있으면 재귀 적으로 나열하지 않도록 할 수 있습니다
find . \! -name 'temp_log*' -maxdepth 1
ls를 사용하면 -d 옵션을 전달 하여 디렉토리 내부에 나열되지 않도록 할 수 있습니다.-exec ls -d {} +
답변
의 기능이 아닌 쉘의 기능을 사용하고 싶다고 생각합니다 ls
. bash를 사용하므로에서 원하는 것을 확인했습니다 man bash
. “^ EXPANSION”을 검색하십시오 (먼저 ‘/’를 누름). 발췌 :
확장
확장은 단어로 분할 된 후 명령 행에서 수행됩니다. 괄호 확장 , 물결표 확장 , 매개 변수 및 변수 확장 , 명령 대체 , 산술 확장 , 단어 분할 및 경로 이름 확장의 7 가지 확장이 수행 됩니다.
︙
… <싹둑>>
︙경로명 확장
하지 않는 단어 분할 한 후, -f 옵션이 설정되어, 배쉬는 문자에 대한 각 단어를 검색
*
,?
및[
. 이러한 문자 중 하나가 나타나면 단어는 패턴으로 간주되고 패턴 과 일치하는 알파벳순으로 정렬 된 파일 이름 목록으로 대체됩니다. …
최근에 첫 번째 문자를 기반으로 파일을 제외하기 시작했습니다.
$ ls ./[^t]*
이것은 글자로 시작하지 않는 것과 일치합니다 t
. 대괄호 사이에 문자를 더 추가하면 해당 문자로 시작하는 파일도 제외됩니다.
링크를 찾고 좋은 링크를 찾았습니다! 패턴 일치를 참조하십시오 . 거기에서 이것은 귀하의 경우에 효과가 있습니다.
$ ls -lrt ./!(temp_log.*)
이를 위해서는 Gilles가 언급 한대로 extglob
쉘 옵션이 shopt
내장 ( shopt -s extglob
)을 사용하여 활성화 되어야합니다 .
답변
그냥 해
ls -ltr `grep -il patterntosearch *`
답변
파일 때문에 당신은 그나마 인쇄 싶다 “temp_log을.”가 파일 이름에서 grep을 사용하여 필터링하십시오.
ls -lrt | grep -v "temp_log."
참고 : 사용자가 grep에서 찾아야하는 문자열 주위에 따옴표 “”를 포함하지 않았기 때문에 비슷한 답변을 가진 다른 게시물이 다운 보트되었을 수 있습니다. 따옴표가 없으면 광고 된대로 작동하지 않습니다.