一部の特定のフォルダを除き、親フォルダの下のすべてのフォルダを削除する方法

一部の特定のフォルダを除き、親フォルダの下のすべてのフォルダを削除する方法

/htmlこれが私のフォルダの内容です。

[root@ip-10-0-7-121 html]# ls
a             wp-activate.php       wp-content         wp-mail.php
b             wp-admin              wp-cron.php        wp-settings.php
healthy.html  wp-blog-header.php    wp-includes        wp-signup.php
index.php     wp-comments-post.php  wp-links-opml.php  wp-trackback.php
license.txt   wp-config.php         wp-load.php        xmlrpc.php
readme.html   wp-config-sample.php  wp-login.php

/フォルダを別のフォルダに移動せaずにフォルダを除いてすべてを削除したいです。これを行うコマンドは何ですか?bab

ベストアンサー1

否定を使用することができますfind(危険は本人負担)。

「a」または「b」という名前のすべてのファイルとフォルダを探します。

find -name a -o -name b

現在のディレクトリで、「a」または「b」という名前のすべてのファイルとフォルダを探します。

find -maxdepth 1 -name a -o -name b

現在のディレクトリで、名前が「a」と「b」ではないすべてのファイルとフォルダを探します。

find -maxdepth 1 ! -name a ! -name b

また、結果から現在のディレクトリを除外します。

find -maxdepth 1 ! -name a ! -name b ! -name .

これで、次を使用して作成されたすべての要素を削除できますrm

find -maxdepth 1 ! -name a ! -name b ! -name . -exec rm -rv {} \;

おすすめ記事