52ky 发表于 2022-5-3 11:56:25

递归删除,但排除特定目录树

问题
假设我有一个名为“sample”的目录。

它包含下一个内容
sample
├── files
│   └── usr
│       ├── 1.txt
│       ├── 2.txt
│       └── bin
│         └── 12.txt
├── opt
│   └── lib
│       ├── 33.txt
│       └── log
│         └── access.log
├── sub_dir1
│   └── sub_dir1.1
│       └── sub_dir1.1.1
└── sub_dir2
    └── sub_dir2.2
      └── sub_dir2.2.2
如何删除所有内容,不包括 sample/opt/lib/log/access.log

我希望这会奏效

查找样本/ -type d -print | grep -v "sample/opt/lib/log/access.log"; | xargs rm -rf

但它没有

回答
这个 gnu find 命令应该适合你:

找样品/! -path 'sample/opt/lib/log/access.log' -删除 2>/dev/null



页: [1]
查看完整版本: 递归删除,但排除特定目录树