gpt4 book ai didi

bash - 递归删除所有 "*.foo"文件和相应的 "*.bar"文件

转载 作者:行者123 更新时间:2023-11-29 09:03:10 26 4
gpt4 key购买 nike

我如何递归删除所有以 .foo 结尾的文件,这些文件有同名但以 .bar 结尾的兄弟文件?例如,考虑以下目录树:

.
├── dir
│   ├── dir
│   │   ├── file4.bar
│   │   ├── file4.foo
│   │   └── file5.foo
│   ├── file2.foo
│   ├── file3.bar
│   └── file3.foo
├── file1.bar
└── file1.foo

在此示例中,file.foofile3.foofile4.foo 将被删除,因为有同级 file {1,3,4}.bar 文件。 file{2,5}.foo 应该留下这个结果:

.
├── dir
│   ├── dir
│   │   ├── file4.bar
│   │   └── file5.foo
│   ├── file2.foo
│   ├── file3.bar
└── file1.bar

最佳答案

请记住在尝试此findrm 命令之前先进行备份。

使用这个查找:

find . -name "*.foo" -execdir bash -c '[[ -f "${1%.*}.bar" ]] && rm "$1"' - '{}' \;

关于bash - 递归删除所有 "*.foo"文件和相应的 "*.bar"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com