.log
file 을 제외한 확장자를 가진 모든 파일을 나열하고 싶습니다 backup.log
.
나는 다음 명령을 사용해 보았습니다.
ls *.log -I "backup.log"
그러나 모든 로그 파일이 나열됩니다. 심지어 backup.log
!
을 제외한 모든 로그 파일을 어떻게 나열할 수 있습니까 backup.log
?
답변1
쉘은 와일드카드 문자를 확장하여 인수 중 하나로 포함시킵니다 ls
.backup.log
확장 모드를 사용하려면( 활성화하여 shopt -s extglob
):
ls !(backup).log
답변2
한 가지 가능성은 다음과 같습니다.
find . -maxdepth 1 -mindepth 1 -name \*.log -a -not -name backup.log
즉, 현재 디렉터리 또는 그 아래에서 정확한 깊이가 1인 모든 파일을 찾습니다(따라서 실제로는 현재 디렉터리 자체의 이름이 아니라 현재 디렉터리에서만) *.log
.backup.log
답변3
TxR:
$ ls *.patch
install-tests.patch match.patch netbsd.patch specials.patch wlist.patch
$ txr -t '(glob "*.patch")'
install-tests.patch
match.patch
netbsd.patch
specials.patch
wlist.patch
$ txr -t '(set-diff (glob "*.patch") (glob "[mn]*.patch"))'
install-tests.patch
specials.patch
wlist.patch
답변4
ls
다음을 통한 구문 분석 결과는 어떻습니까 grep
?
ls -l *.log | grep -v backup.log