【问题标题】:ls all directories that do NOT match multiples extensionsls 所有不匹配多个扩展名的目录
【发布时间】:2018-12-11 23:51:29
【问题描述】:

我正在尝试列出不以 .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/

我研究过的内容:
RegEx - Find everything that does not contain a pattern
List all files that do not match selector (using ls)

List files not matching a pattern?
How to display list of all files not ending with .txt using ls command and regex?

我尝试过的: 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 

【问题讨论】:

    标签: regex find pattern-matching ls


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2021-09-18
      • 2012-02-24
      • 2020-06-30
      • 2021-01-10
      相关资源
      最近更新 更多