删除文件夹中除具有特定名称的文件夹外的所有文件夹

里尤·马赫纳(Riju Mahna)

我需要使用日常脚本删除文件夹中的所有文件夹。需要保留当天的文件夹。

文件夹“ myfolder”具有3个子文件夹:“ test1”,“ test2”和“ test3”我需要删除除“ test2”以外的所有文件夹。

我正在尝试在此处匹配确切的名称:

find /home/myfolder -type d ! -name 'test2' | xargs rm -rf

或者

find /home/myfolder -type d ! -name 'test2' -delete

此命令也总是尝试删除主文件夹“ myfolder”!有办法避免这种情况吗?

约翰1024

这将删除其中的所有文件夹,./myfolder./myfolder/test2所有内容将保留:

find ./myfolder -mindepth 1 ! -regex '^./myfolder/test2\(/.*\)?' -delete

怎么运行的

  • find 启动查找命令。
  • ./myfolder告诉find从目录./myfolder及其内容开始。

  • -mindepth 1不匹配./myfolder自身,仅匹配其下的文件和目录。

  • ! -regex '^./myfolder/test2\(/.*\)?'告诉find排除(!)任何与正则表达式匹配的文件或目录^./myfolder/test2\(/.*\)?^匹配路径名的开头。该表达式(/.*\)?匹配(a)斜杠后跟任何东西,或(b)完全不匹配。

  • -delete 告诉find删除匹配(即不排除)的文件。

例子

考虑一个看起来像的目录结构;

$ find ./myfolder
./myfolder
./myfolder/test1
./myfolder/test1/dir1
./myfolder/test1/dir1/test2
./myfolder/test1/dir1/test2/file4
./myfolder/test1/file1
./myfolder/test3
./myfolder/test3/file3
./myfolder/test2
./myfolder/test2/file2
./myfolder/test2/dir2

我们可以运行find命令(不带-delete)来查看其匹配的内容:

$ find ./myfolder -mindepth 1 ! -regex '^./myfolder/test2\(/.*\)?'
./myfolder/test1
./myfolder/test1/dir1
./myfolder/test1/dir1/test2
./myfolder/test1/dir1/test2/file4
./myfolder/test1/file1
./myfolder/test3
./myfolder/test3/file3

我们可以通过查看剩余的文件来验证此方法是否有效:

$ find ./myfolder
./myfolder
./myfolder/test2
./myfolder/test2/file2
./myfolder/test2/dir2

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除除特定文件夹外的所有内容

来自分类Dev

删除文件夹中除具有某些前缀的文件外的所有文件

来自分类Dev

批处理命令删除所有具有特定名称的子文件夹

来自分类Dev

如何使用Powershell删除具有特定名称的所有文件夹

来自分类Dev

删除ntfs驱动器上所有具有特定名称的文件夹

来自分类Dev

从某个目录中删除具有特定名称的文件和文件夹

来自分类Dev

从某个目录中删除具有特定名称的文件和文件夹

来自分类Dev

如何从所有子目录中递归删除所有具有特定名称的文件夹?

来自分类Dev

递归删除solaris中除特定文件外的所有文件+文件夹

来自分类Dev

重命名文件夹中具有特定名称的所有具有特定格式的文件

来自分类Dev

自动复制除该文件夹外的文件夹中的所有文件

来自分类Dev

cmd删除除最后5个文件夹外的所有文件夹

来自分类Dev

删除除X个最近的文件夹外的所有文件夹

来自分类Dev

文件夹中除一个命名文件夹外的所有文件夹的glob

来自分类Dev

批处理文件,删除目录中除最新文件夹外的所有文件夹

来自分类Dev

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

来自分类Dev

删除目录中除两个特定文件夹外的所有内容

来自分类Dev

如何在VBA中打开具有特定名称的文件夹中的文件?

来自分类Dev

如何删除特定名称的所有文件夹而不删除其中的目录?

来自分类Dev

使用查找在具有特定名称但深度未知的子文件夹中获取文件

来自分类Dev

使用Powershell计数子文件夹中具有特定名称的文件数

来自分类Dev

如何删除Windows批处理脚本中除一个文件夹外的文件夹中的所有文件夹?

来自分类Dev

删除UNIX中所有不包含特定名称的文件夹

来自分类Dev

删除具有特定模式的文件夹中的文件

来自分类Dev

如何删除除父文件夹下的某些特定文件夹以外的所有文件

来自分类Dev

在每个子文件夹中创建一个带有特定名称的空文件的文件夹

来自分类Dev

命令行复制特定名称模式的所有网络文件夹文件,包括子文件夹中的那些文件

来自分类Dev

如何删除特定文件夹中具有特定扩展名的所有文件?

来自分类Dev

通过排除具有特定名称的所有子文件夹将文件夹复制到另一个位置

Related 相关文章

  1. 1

    删除除特定文件夹外的所有内容

  2. 2

    删除文件夹中除具有某些前缀的文件外的所有文件

  3. 3

    批处理命令删除所有具有特定名称的子文件夹

  4. 4

    如何使用Powershell删除具有特定名称的所有文件夹

  5. 5

    删除ntfs驱动器上所有具有特定名称的文件夹

  6. 6

    从某个目录中删除具有特定名称的文件和文件夹

  7. 7

    从某个目录中删除具有特定名称的文件和文件夹

  8. 8

    如何从所有子目录中递归删除所有具有特定名称的文件夹?

  9. 9

    递归删除solaris中除特定文件外的所有文件+文件夹

  10. 10

    重命名文件夹中具有特定名称的所有具有特定格式的文件

  11. 11

    自动复制除该文件夹外的文件夹中的所有文件

  12. 12

    cmd删除除最后5个文件夹外的所有文件夹

  13. 13

    删除除X个最近的文件夹外的所有文件夹

  14. 14

    文件夹中除一个命名文件夹外的所有文件夹的glob

  15. 15

    批处理文件,删除目录中除最新文件夹外的所有文件夹

  16. 16

    如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

  17. 17

    删除目录中除两个特定文件夹外的所有内容

  18. 18

    如何在VBA中打开具有特定名称的文件夹中的文件?

  19. 19

    如何删除特定名称的所有文件夹而不删除其中的目录?

  20. 20

    使用查找在具有特定名称但深度未知的子文件夹中获取文件

  21. 21

    使用Powershell计数子文件夹中具有特定名称的文件数

  22. 22

    如何删除Windows批处理脚本中除一个文件夹外的文件夹中的所有文件夹?

  23. 23

    删除UNIX中所有不包含特定名称的文件夹

  24. 24

    删除具有特定模式的文件夹中的文件

  25. 25

    如何删除除父文件夹下的某些特定文件夹以外的所有文件

  26. 26

    在每个子文件夹中创建一个带有特定名称的空文件的文件夹

  27. 27

    命令行复制特定名称模式的所有网络文件夹文件,包括子文件夹中的那些文件

  28. 28

    如何删除特定文件夹中具有特定扩展名的所有文件?

  29. 29

    通过排除具有特定名称的所有子文件夹将文件夹复制到另一个位置

热门标签

归档