ls 所有与多个扩展名不匹配的目录



我正在尝试列出不以 .tar* 或 *.tgz 结尾的所有内容

例如

directory1/
ls -ltr *
06062018.tar.gz
06062018.tar.tgz
06062018.tgz
06062018/
directory2/06062018.tar.gz
directory3/06062018.tar.tgz
directory4/06062018.tgz
directory5/06062018/
directory6/06062018.1/

预期输出为:

0606218/
directory5/06062018/
directory6/06062018.1/

我研究过什么:
正则表达式 - 查找不包含模式的所有
内容 列出所有与选择器不匹配的文件(使用 ls(

列出与模式不匹配的文件?
如何使用ls命令和正则表达式显示所有不以.txt结尾的文件的列表?

我尝试过什么:ls -ltr * | grep -v $tar.gz

ls -ltr * !(*.tar.gz)
find ./* -maxdepth 1 ! -path "*tar.*"
find . -maxdepth 1 ! -path "[*.tar.gz|*tgz]"
ls -ltr | grep -v "[*tar*|*tgz]" 
ls -ltr */* --ignore=*.tar.gz --ignore=*tgz 
ls -ltr ./* --ignore=*.tar* --ignore=*tgz 

只需使用两种! -name模式。

find * -maxdepth 1 ! -name '*.tar*' ! -name '*.tgz'

相关内容

最新更新