Удалить набор папок, содержащих более одного символа «-» в разных местах в качестве части имени.

Удалить набор папок, содержащих более одного символа «-» в разных местах в качестве части имени.

Как удалить несколько папок, -в названии которых содержится более одного слова?

Например:

e97bf913-5759-4fff-bdaf-2f931b53a432/
39f953c5-dab0-420e-a650-a50a30f48097/

решение1

Шаблон

*-*-*/

Соответствует каталогам с двумя или более дефисами. *Соответствует любой строке (ноль или более символов).

Если вы хотите сопоставить только те имена каталогов, которые не должны начинаться и заканчиваться дефисом (как в вашем примере), вы можете использовать

[!-]*-*-*[!-]/

Вместо этого. [!-]Соответствует любому символу, который не является ( !) дефисом.

Бегать

ls -d [!-]*-*-*[!-]/

сначала посмотрите, не те ли это, которые вы хотите удалить. Затем запустите

rm -r [!-]*-*-*[!-]/

для их рекурсивного удаления. Если вам действительно нужно принудительное удаление, добавьте -fк команде.

решение2

rm -r *-*-*-*-*

ВНИМАНИЕ: Это удалит все файлы, соответствующие этой схеме. Так что файлы типа:

system-file-separated-by-minus 

тоже будет удален.

Часть '*' обозначает все (ноль, один или несколько символов) до следующего указанного, в этом случае разделенного знаком минус. Если вы знаете, что ваши файлы содержат 8 символов перед -, 4 перед следующим, вы можете сказать:

rm -r ????????-????-????-????-????????????

Каждый ? означает любой символ. Это удалит все файлы, соответствующие вашей схеме. Но также будут удалены файлы, имеющие ту же схему, что вам может не понадобиться, поэтому проверьте это в первую очередь.

решение3

Просто выполните эту команду в родительском каталоге

rm -r *-*-*/

Связанный контент