temp_log.$$
확인해야 할 몇 가지 다른 중요한 파일과 함께 해당 이름을 가진 많은 파일(약 200개)이 생성되는 디렉터리가 있습니다 .
temp_log.$$
모든 파일을 쉽게 나열하고 표시된 파일을 제외하는 방법은 무엇입니까 ?
예상 출력
$ ls -lrt <exclude-filename-part>
-- Lists files not matching the above given string
ls
매뉴얼 페이지를 살펴봤지만 이 참조 자료에서는 아무것도 찾을 수 없습니다. 여기서 중요한 정보를 놓친 경우 알려주시기 바랍니다.
감사해요
답변1
GNU ls
(내장되지 않은 Linux 및 Cygwin 버전, 때로는 다른 곳에서도 발견되는 버전)를 사용하면 디렉터리를 나열할 때 특정 파일을 제외할 수 있습니다.
ls -I 'temp_log.*' -lrt
-I
( is 의 긴 형식에 유의하세요 --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.*)
답변2
grep
옵션과 함께 사용할 수 있습니다 -v
.
ls -lrt | grep -v <exclude-filename-part>
답변3
다음을 위해 사용할 수 있습니다 find
:
find . \! -name 'temp_log*'
이것은 타임스탬프와 권한이 있는 스타일이 지정된 출력을 -ls
만들기 위해 추가할 수 있는 이름만 인쇄하거나 열, 정렬 등에 대해 원하는 옵션과 함께 실제로 ls에 전달하기 위해 추가할 수 있습니다.ls -l
-exec ls {} +
나는 이것이 단지 디렉토리에 있는 파일이라고 가정하고 이 글을 쓰고 있습니다. 디렉터리에 다른 디렉터리가 포함되어 있으면 해당 디렉터리를 반복적으로 나열하지 않는 것이 좋습니다.
find . \! -name 'temp_log*' -maxdepth 1
ls를 사용하는 경우 중지하려면 -d 옵션을 전달해야 합니다.그것디렉토리 목록:-exec ls -d {} +
답변4
그냥 해
ls -ltr `grep -il patterntosearch *`