【问题标题】:How do you remove an entire directory except for certain subdirectories in linux?除了 linux 中的某些子目录,如何删除整个目录?
【发布时间】: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 & LinuxSuper User 将是解决此类问题的更好地方。

标签: linux bash rm


猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
相关资源
最近更新 更多