假设我在linux中运行以下命令:
$ mkdir -p mp3 jpeg/dir1 jpeg/dir2 txt
$ touch mp3/1.mp3 mp3/2.mp3 mp3/3.mp3
$ touch jpeg/1.jpeg jpeg/2.jpeg jpeg/3.jpeg
$ touch txt/1.txt txt/2.txt txt/3.txt
这将创建一个目录结构,如:
├── jpeg
│ ├── 1.jpeg
│ ├── 2.jpeg
│ └── 3.jpeg
│ └── dir1
│ └── dir2
├── mp3
│ ├── 1.mp3
│ ├── 2.mp3
│ └── 3.mp3
└── txt
├── 1.txt
├── 2.txt
└── 3.txt
如何调用linux "rm"命令,删除"jpeg"目录,除了"dir2"子目录吗?
所以我要找的命令看起来像:
rm -rf -not dir2 jpeg
但是当我在Centos 7上运行该命令时,我得到以下错误消息:
rm: invalid option -- 'n'
我的目标输出目录结构应该看起来像:
├── jpeg
│
│
│
│
│ └── dir2
├── mp3
│ ├── 1.mp3
│ ├── 2.mp3
│ └── 3.mp3
└── txt
├── 1.txt
├── 2.txt
└── 3.txt
感谢来自linux脚本社区的所有帮助
您可以使用此find
命令删除jpeg
目录下除dir2
以外的所有内容:
find jpeg -mindepth 1 -not -path 'jpeg/dir2' -prune -delete