
부인 성명: 예, 스크립트에서 파일을 찾는 것은 ls
좋지 않지만 find
수정된 날짜별로 정렬되지는 않습니다.
다음 을 사용하면 모든 것이 괜찮 ls
습니다 xargs
.echo
$ ls -t1 ssl-access*.gz | xargs -n 1 echo
ssl-access.log.2.gz
ssl-access.log.3.gz
ssl-access.log.4.gz
[...]
echo
로 변경 zcat
:
$ ls -t1 ssl-access*.gz | xargs -n 1 zcat
gzip: ssl-access.log.2.gz.gz: No such file or directory
gzip: ssl-access.log.3.gz.gz: No such file or directory
gzip: ssl-access.log.4.gz.gz: No such file or directory
[...]
파일 접미사가 중복됩니까? ! 여기서 무슨 일이 일어나고 있는 걸까요?
고쳐 쓰다:
운영체제는 데비안 5이다.
zcat
쉘 스크립트입니다 /bin/zcat
.
#!/bin/sh
PATH=${GZIP_BINDIR-'/bin'}:$PATH
exec gzip -cd "$@"
답변1
내 시스템에서 문제가 색상 ls로 인해 발생했다는 것을 알았습니다. 내 .bash_profile에는 다음이 있습니다.
alias ls="ls --color"
결과를 stat에 보내서 찾았더니 편리한 내용이 인쇄되었습니다.
$ ls local4.notice-201207* | xargs -n1 -P4 -I{} stat {}
stat: cannot stat `\033[0mlocal4.notice-20120711.gz\033[0m': No such file or directory
빈 색상 코드를 보세요! zcat은 혼란스러워서 파일을 찾기 위해 .gz 접미사를 추가하려고 합니다. 문제는 ls를 color=auto로 변경하여 쉽게 해결할 수 있습니다. 이렇게 하면 STDOUT이 터미널 대신 다른 프로세스에 붙어 있을 때 색상 출력이 비활성화됩니다.
alias ls="ls --color=auto"
행운을 빌어요!
답변2
zcat이 압축 파일에 사용되고 gzcat가 gzip 압축 파일에 사용되는 운영 체제를 사용 중일 수 있습니다. 이 경우 다음이 작동합니다.
ls -t ssl-access*.gz | xargs -n 1 gzcat
편집하다:
저는 Solaris에서 유사하지만 동일하지는 않은 동작을 재현했습니다.
$ ls -t1 *.gz | xargs -n 1 zcat
c.gz.Z: No such file or directory
b.gz.Z: No such file or directory
a.gz.Z: No such file or directory
Debian 기반 배포판(Ubuntu)에서는 문제를 재현할 수 없습니다.
어쨌든, 이것은 작동할 수 있습니다:
cat $(ls -t ssl-access*.gz) | zcat
또는 동등하게:
zcat <(cat $(ls -t ssl-access*.gz))
아니면 이 간단한 방법으로 불필요한 고양이를 피할 수 있습니다.
zcat $(ls -t ssl-access*.gz)
이들 중 어느 것도 공백이 포함된 파일 이름과 같은 이상한 파일 이름을 처리하지 않습니다.