bash - 移动不包含特定字符串的文件
问题描述
我想使用文件名mv
中不包含字母S
的文件移动文件。在 mv 手册中找不到任何内容。也许与find
or结合grep
?它必须区分大小写。
输入:
file1
fileS1
file2
fileS2
要移动的文件:
file1
file2
解决方案
如果您启用扩展 globbing,您可以在纯 Bash 中进行选择,而无需任何额外的软件,默认情况下它是关闭的:
shopt -s extglob
mv !(*S*) /target/dir
有关更多信息,请extglob
在bash(1)
手册页中搜索(信息在第二个匹配项中)。
推荐阅读
- formvalidation.io - formvalidation.io HTML5 验证器不工作
- c++ - 具有不匹配优化级别(-O3、-O2、-O1、-O0)的二进制文件是否会导致稳定性问题?
- api - CSRF 安全是否依赖于前端?
- javascript - 如何在点击时显示 Bootstrap 行?
- ios - _PFObjectIDFastHash64 崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS
- f# - 如何在刺猬中定义一个生成特定长度列表的生成器?
- javascript - 'classList' 为空
- android - 当可见性消失时,ImageButton 会跳转
- algorithm - 在浮点数数组中找到一个三元组,它们的总和为 [1.0, 2.0] 中的一个值
- java - 如何使 JButton 宽度变小?