Как удалить все, кроме определенной папки под родительской папкой

Итак, вот содержимое в папке /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 и b без необходимости переместить папку a / b в другую папку. Что это за команда?

    One Solution collect form web for “Как удалить все, кроме определенной папки под родительской папкой”

    Вы можете использовать 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 {} \; 
    Linux и Unix - лучшая ОС в мире.