如何在文件夹中查找与特定模式匹配(或不匹配)的所有文件?

ddzzbbwwmm

如何查找文件夹及其子文件夹以3位数字结尾的所有文件,并在保持目录结构的同时将它们移动到新位置?

另外,如何查找名称不以三位数字结尾的所有文件?

异化

更清洁的解决方案,基于@don_crissti链接的答案。Rsync过滤器:仅复制一种模式

rsync -av --remove-source-files --include='*[0-9][0-9][0-9]' --include='*/' --exclude '*' /tmp/oldstruct/ /tmp/newstruct/

和否定:

rsync -av --remove-source-files --exclude='*[0-9][0-9][0-9]' /tmp/oldstruct /tmp/newstruct/

原始答案:

这应该做。它将在结构中找到cd以3位数字结尾的任何文件,在中创建一个目标文件夹/tmp/newstruct,然后移动该文件。

cd /tmp/oldstruct
find ./ -type f -regextype posix-basic -regex '.*[0-9]\\{3\\}' | 
  while read i; do 
    dest=/tmp/newstruct/$(dirname $i)
    mkdir -vp $dest
    mv -v $i $dest
  done

我建议在前面加上mkdirmvecho之前实际运行它,只是为了确保它你期待什么。

要取反3位数字,只需放置do即可! -regex


这是一个依赖rsync的简单方法。但是,它确实会调用rsync它找到的每个文件,因此绝对不是很有效。

find ./ -type f -regextype posix-basic -regex '.*[0-9]\{3\}' --exec rsync -av --remove-source-files --relative {} /tmp/newstruct

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获得否。与文件夹中所有文件中的字符串匹配的行数

如何在与命令行中的其他模式匹配的目录中“查找”与模式匹配的文件?

使用Karma,如何排除所有与模式匹配的文件,但特定子文件夹中的文件除外?

如何基于通配符匹配递归地找到当前文件夹和子文件夹中的所有文件?

JarScan,扫描所有子文件夹中的所有JAR文件以查找特定的类

如何在匹配模式和替换模式的子目录中查找所有文件

如何删除与特定模式匹配的文件夹中的所有文件?

将与模式匹配的行从文件夹中的所有文本文件提取到单个输出文件

如何在不包含文件夹本身的情况下查找文件夹中的所有文件

如何使用玩笑模式匹配在一个文件夹中调用所有测试?

使用bash在两个文件夹中查找不匹配的文件

git忽略除匹配模式的那些文件夹下的文件和文件夹以外的所有内容

如何在UNIX中的所有子文件夹中查找特定文件

如何查找使用Python在特定文件夹中今天创建的所有文件

如何在ckfinder中显示所有文件夹,子文件夹和文件

如何在特定目录中查找所有空文件和文件夹,包括看起来只是空的文件和不是空文件?

如何在Lotus Notes中查找文件夹的所有子文件夹(视图)

递归查找与特定模式匹配的所有文件

如何将文件夹中的存储库与查找匹配(不匹配)?

如何通过匹配文件名的一部分来查找和删除子文件夹中的所有文件

如何选择/复制文件夹1中名称与其他文件夹2中的其他文件夹匹配的所有文件夹

使用蝙蝠从文件夹中删除与Windows 10中的特定模式匹配的所有文件

如何使用sed \ awk在文件中查找某些行,然后匹配与其他模式匹配的所有后续行?

如何将所有与模式匹配的文件移动到文件夹中?

如何查找子文件夹中缺少特定属性的所有文件?

埃马克。头盔包。如何在文件夹(不是 git 文件夹)和所有子文件夹中查找文件?

如何删除与模式匹配的所有文件?

Linux如何删除前缀与另一个文件夹不匹配的文件夹中的文件?

如何在文件夹中的所有文件中搜索特定短语?