我想列出所有带有扩展名的文件,.log
除了文件backup.log
.
我试过使用这个命令:
ls *.log -I "backup.log"
Run Code Online (Sandbox Code Playgroud)
但是所有的日志文件都列出来了,甚至backup.log
!
我怎么能列出所有日志文件,除了backup.log
?
cho*_*oba 10
shell 扩展了通配符,因此作为参数之一ls
获取backup.log
。
使用扩展模式(由 启用shopt -s extglob
):
ls !(backup).log
Run Code Online (Sandbox Code Playgroud)
一种可能性是:
find . -maxdepth 1 -mindepth 1 -name \*.log -a -not -name backup.log
Run Code Online (Sandbox Code Playgroud)
即在当前目录或下面找到所有文件,精确深度为 1(所以实际上只在当前目录中而不是当前目录本身的名称),名称与模式匹配*.log
而不是backup.log