Как удалить несколько папок, -
в названии которых содержится более одного слова?
Например:
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 *-*-*/