递归删除,但排除特定目录树
问题假设我有一个名为“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]