【发布时间】:2022-06-15 23:39:12
【问题描述】:
假设我在 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 脚本社区的所有/任何帮助
【问题讨论】:
-
rm没有这样的选择。您需要使用find删除除您要保留的内容之外的所有内容。 -
Stack Overflow 用于编程问题,而不是关于使用或配置 Unix 及其实用程序的问题。 Unix & Linux 或 Super User 将是解决此类问题的更好地方。