首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

列出bash中与模式不匹配的所有文件

在Bash中,你可以使用find命令结合!(非)操作符来列出与特定模式不匹配的所有文件。以下是一个基本的例子:

代码语言:txt
复制
find . -type f ! -name "*.txt"

这个命令会列出当前目录(.)及其子目录下所有不是.txt文件的文件。

基础概念

  • find命令用于在目录树中搜索文件。
  • -type f指定只查找文件类型。
  • -name用于匹配文件名。
  • !操作符用于取反,即选择不匹配指定模式的文件。

优势

  • 灵活性高,可以结合多个条件进行搜索。
  • 支持正则表达式,可以进行复杂的模式匹配。

类型

  • 可以根据文件类型、大小、修改时间等多种属性进行搜索。

应用场景

  • 当你需要清理目录中特定类型的文件时。
  • 在项目中查找所有不符合命名规范的文件。

遇到的问题及解决方法

如果你在使用find命令时遇到问题,比如权限不足或者路径错误,可以尝试以下方法:

  • 确保你有足够的权限访问目标目录和文件。
  • 检查路径是否正确,特别是相对路径和绝对路径的使用。
  • 使用-print选项来打印出匹配的文件,以便于调试。
代码语言:txt
复制
find . -type f ! -name "*.txt" -print

参考链接

这个命令和解释应该能帮助你理解如何在Bash中使用find命令来列出与模式不匹配的所有文件。如果你有更多关于Bash或者find命令的问题,可以继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 精简运维流程:grep、awk、sed三剑客实用脚本

    我这里只挑常用参数,更详细参数,大家可以自行搜索查阅。 grep grep 用于搜索文件匹配特定模式行。...-i:忽略大小写 -v:反转匹配,只显示匹配行 -c:计数匹配行数 -n:显示匹配行号 -r:递归搜索目录所有文件 -E:使用扩展正则表达式 常用示例: 查找文件包含"error"行(区分大小写...grep grep 可以使用强大正则表达式来进行模式匹配。 -o:仅输出文件匹配部分。 -A n:打印匹配行及其后n行。 -B n:打印匹配行及其前n行。...n~m:每m行匹配一次,从第n行开始。 &:在替换字符串引用匹配部分。 -n p 结合使用:仅打印那些发生替换行。 自动化脚本案例: #!...检查并列出文件文件 #!/bin/bash # 列出当前目录及子目录下所有超过100MB文件 find .

    27410

    【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件变量

    可以用 case 语句匹配一个值一个模式,如果匹配成功,执行相匹配 命令。 case 语句格式如下: case 工作方式如上所示。...取值后面必须为单词 in ,每一模式必须以右括号结束。取值可以为变量或常 数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;; 。 取值将检测匹配每一个模式。...一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果 无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。...下面的脚本提示输入 1 到 4 ,每一种模式进行匹配: 输入不同内容,会有不同结果,例如: 6 跳出循环 在循环过程,有时候需要在未达到循环结束条件时强制跳出循环, Shell 使用两个命令来实现该功能...: 2.1 实例 执行脚本,输出结果如下所示: 2.2 获取数组所有元素 使用 @ 或 * 可以获取数组所有元素,例如: 执行脚本,输出结果如下所示: 2.3

    3.1K30

    linux下命令自动补全总结

    1、compgen compgen [option] [word] compgen命令根据option生成word可能匹配补全,并打印到标准输出,这些选项可以是内建命令complete所支持任何选项...如果指定了选项“-p”或者没有指定任何选项,则把已有的补全方法用一种可以重新作为作为输入格式打印出来。选项“-r”用以删除指定名称补全方法,指定名称时删除所有的名称补全方法。...“-G globpat”:使用文件名扩展模式globpat进行扩展以生成可能补全条目。 “-P prefix”:在所有的选项应用到补全结果后,在结果前添加前缀prefix。...“-W wordlist”:使用特殊变量IFS字符拆分单词列表wordlist,并扩展拆分后每个单词,结果待补全单词 匹配条目就是补全条目。...“-X filterpat”:filterpat是进行文件名扩展时使用模式,它作用于通过前面的选项和参数生成补全列表,并把每个过滤模式匹配条目删除,模式前导叹号表示否定,这时会删除过滤模式匹配条目

    6.6K50

    Bash Shell

    :将匹配任何一个字符而且只能是一个字符 [a-z]:将匹配字符a~z范围内所有字符 [^a-z]:将匹配所有字符但是a~z范围内字符除外 [xyz]:将匹配方括号任意一个字符 [^xyz]:将匹配不包括方括号字符所有字符利用...:将匹配任何一个字符而且只能是一个字符        [xyz]:将匹配方括号任意一个字符        [^xyz]:将匹配不包括方括号字符所有字符        ^:锁定行开头       ...命令中常用选项如下:    -c:仅列出包含模式行数 \    -i:忽略模式字母大小写    -l:列出带有匹配文件名    -n:在每行最前列出行号    -v:列出没有匹配模式行   ...它语法格式grep相同。但它是用来在一个或多个文件内容利用扩展正则表达式元字符搜索特定模式。扩展正则表达式元字符包括了grep中使用正则表达式元字符同时还增加了一些额外元字符。...-f选项从文件读取要搜索模式

    1.5K30

    Linux操作系统下 chkconfig 命令详解

    以下命令将在/etc/目录内所有文件(包括所有子目录)搜索字符串artful: grep -R artful /etc/* 搜索包含特定单词所有文件 上面的grep命令示例列出了包含字符串artful...下一个示例将只递归地显示包含/etc/目录下字符串artful所有文件名: grep -Rl artful /etc/* 执行区分大小写搜索 所有搜索默认情况下都区分大小写,这意味着任何搜索字符串搜索都将只显示包含确切大写和小写匹配文件.../etc/* 同样,使用--exclude选项,我们可以排除任何特定文件名: grep -Ril --exclude=\*.conf bash /etc/* 从搜索中排除特定目录 文件一样,grep...v选项来列出所有包含特定关键字文件。...例如,以下搜索将列出包含字符串artful/etc/目录所有文件: grep -Rlv artful /etc/*

    1.3K00

    Linux常用命令09 - sed

    它支持基本和扩展正则表达式,允许您匹配复杂模式。 接下来, 我将使用 sed 查找和替换字符串。 我还将向您展示如何执行递归搜索和替换。...正如您可能已经注意到,在前面的示例,foobar 字符串子字符串 foo 也被替换了。 如果这不是想要行为,请在搜索字符串两端使用单词边界表达式(\b)。 这将确保部分词匹配。...若要使模式匹配区分大小写,请使用 I 标志。...bin/bash demo foobar number sed 另一个有用特性是,您可以使用匹配模式相对应 & 符号。...: ls file.txt file.txt.bak 递归查找和替换 有时,您希望递归地搜索目录包含字符串文件,并替换所有文件字符串。

    2.1K30

    linux sed命令详解

    处理时,把当前处理行存储在临时缓冲区,称为“模式空间”(pattern space),接着用sed命令处理缓冲区内容,处理完成后,把缓冲区内容送往屏幕。...sed使用参数 [root@www ~]# sed [-nefr] [动作] 选项参数: -n :使用安静(silent)模式。...在一般 sed 用法所有来自 STDIN 数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理那一行(或者动作)才会被列出来。...root已经删除了 数据搜寻并执行命令 找到匹配模式eastern行后, 搜索/etc/passwd,找到root对应行,执行后面花括号一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell...数据搜寻并替换 除了整行处理模式之外, sed 还可以用行为单位进行部分数据搜寻并取代。基本上 sed 搜寻替代 vi 相当类似!

    4.1K10

    Linux常用shell语法和命令

    交互模式:在shell命令行直接输入bc及能进入bc语言交互模式。 非交互模式echo方法一起使用。...grep 基本命令 grep在一个或多个文件查找模式字符串(pattern)匹配行,并将搜索结果打印出来,不会修改原文件内容。...,以查找匹配某个特定模式文本行,并对这些文本行执行(括在花括号)指定动作。...如果只给出模式而未指定动作,则所有匹配模式行都显示在屏幕上,如果只指定动作而未定义模式,会对所有输入行执行指定动作。...处理完第一条记录后,awk将其丢弃,接着将下一条记录读入缓冲区,依次处理所有记录。如果没有模式限制,默认操作就是打印全部记录。而模式如果没有相应操作,则默认行为是打印匹配记录。

    4.3K20

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    -l 列出文件内容符合指定范本样式文件名称。 -L 列出文件内容不符合指定范本样式文件名称。 -n 在显示符合范本样式那一列,标示出该列编号。 -q 不显示任何信息。..." -r -n ./ 反转显示,显示查找内容不符合所有内容 需运用-v参数。...$ grep "bash" -vn demo.sh #显示demo.sh内包含bash行,并显示行号 查找以某内容开头行 需运用正则表达式^...。...3.2 sed工作流程 1、sed默认编辑原文件,而是逐行操作,复制一份到指定内存(pattern space,模式空间) 2、pattern space内进行模式匹配,即和指定条件做匹配   不满足模式...[^] 匹配一个不在指定范围内字符,如:/[^A-RT-Z]ed/匹配包含A-R和T-Z一个字母开头,紧跟ed行。 ....

    9.3K21

    Linux下文本处理“三剑客”

    ,例如 –B2 则表示打印符合要求行以及上面两行 -C (context):后跟一个数字,例如 –C2 则表示打印符合要求行以及上下各两行 -E egrep执行模式相同,才能使用扩展正则表达式...在一般 sed 用法所有来自 STDIN资料一般都会被列出到萤幕上。...但如果加上 -n 参数后,则只有经过sed 特殊处理那一行(或者动作)才会被列出来 -f,–file=script-file 以选项中指定script文件来处理输入文本文件...,多文件记录递增 FNR NR类似,不过多文件记录递增,每个文件都从1开始 \t 制表符 \n 换行符 FS BEGIN时定义分隔符 RS 输入记录分隔符...= 为匹配 另外还可以使用 && 和 || 表示 “并且” 和 “或者” 意思。 4.

    1.1K30

    linux实战(一)

    -l:查询多文件时只输出包含匹配字符文件名。 -n:显示匹配行及行号。 -s:不显示不存在或无匹配文本错误信息。 -v:显示包含匹配文本所有行。...在一般 sed 用法所有来自 STDIN 数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理那一行(或者动作)才会被列出来。...从文件读入r命令 $ sed '/test/r file' example file里内容被读进来,显示在test匹配行后面,如果匹配多行,则file内容将显示在所有匹配下面。...input-file(s) 是待处理文件。 在awk文件每一行,由域分隔符分开每一项称为一个域。通常,在指名-F域分隔符情况下,默认域分隔符是空格。...: C条件表达式 || 逻辑或 && 逻辑 ~ ~! 匹配正则表达式和匹配正则表达式 >= !

    2.2K10

    详解command not found: shopt ~.bashrc

    再次执行相同操作时,我们可以看到不再匹配模式,因为 extglob 已经被禁用。shopt 命令用于查看或修改 Bash 选项设置。Bash 选项是一组用于控制 shell 行为开关。...查看选项设置要查看当前选项设置,可以使用以下命令:bashCopy codeshopt此命令将列出所有的选项,以及每个选项的当前状态(打开或关闭)。...常见选项下面列出了一些常见 shopt 命令中使用选项:extglob:允许使用扩展模式匹配(例如 @(pattern-list))。...globstar:启用递归通配符模式(例如 **/file 可以匹配任意层级目录下文件)。nocaseglob:在文件匹配时忽略大小写。...nullglob:在没有匹配文件时,将通配符模式展开为空字符串,而不是原样输出。dotglob:使通配符 * 和 ? 可以匹配文件点(.)开头文件

    1.3K11

    2017年企业版高薪运维经典基础面试题汇总

    .* 表示匹配所有的字符。^.*表示以任意字符开头。 [任意字符如abc] 匹配字符集内任意一个字符[a-z]。 [^abc] ^在括号里面是非意思,包含之意。意思就是包含a或b或c行。...( \)功能可以记住正则表达式一部分,其中,\1为第一个记住模式即第一个小括号匹配内容,\2第二记住模式,即第二个小括号匹配内容,sed最多可以记住9个。...实际字符选取最好要唯一,正则表达式是贪婪,总是尽可能匹配更远符合匹配内容。另外注意字符串空格。...>/dev/null 2>&1 等价于 1>/dev/null 2>/dev/null 16.请列出Linux你认为重要文件夹及包含内容 ① /目录下文件夹里面分别是以下内容: /usr 包含所有的命令和程序库...⑴通过环境变量syslog对全部全部日志进行审计(信息量太大,推荐) ⑵sudo配合syslog服务,进行sudo操作日志进行审计(信息较少,效果不错) ⑶在bash解释器嵌入一个监视器,让所有用户使用修改过

    1.2K60
    领券