Как удалить несколько подкаталогов с помощью одной команды Linux
Если вы хотите удалить несколько подкаталогов в другом каталоге с помощью командной строки в Linux, обычно вам нужно использовать команду rm
несколько раз. Однако есть более быстрый способ сделать это.
Допустим, у нас есть каталог htg с пятью подкаталогами внутри, и мы хотим удалить три из них. В обычной ситуации мы использовали бы команду rm
три раза.
Однако мы можем сделать этот процесс еще короче, объединив три команды rm
в одну. Вот как.
Чтобы удалить три подкаталога, вам нужно всего лишь ввести следующую команду в командной строке и нажать Enter (очевидно, измените имена каталогов на те, которые вы хотите удалить).
rm -r ~/Documents/htg/{done,ideas,notes}
Слова в скобках являются частью «списка расширения фигурных скобок». Каждый элемент в раскрывающемся списке добавляется отдельно к предыдущему пути (~/Documents/htg/). Например, приведенная выше команда расширяется до ~/Documents/htg/done, ~/Documents/htg/ideas и ~/Documents/htg/notes — трех подкаталогов в каталоге htg, которые мы хотим удалить. Как вы можете видеть на скриншоте ниже, эти три подкаталога были удалены.
Флаг -r
требуется при использовании команды rm для удаления каталога, а не файла. Если вы не укажете флаг -r
в приведенной выше команде, вы получите сообщение об ошибке, говорящее о том, что каталоги не могут быть удалены.
Если все подкаталоги, которые вы хотите удалить, пусты, вы можете использовать команду rmdir
, как показано ниже.
rmdir ~/Documents/htg/{done,ideas,notes}
Если выяснится, что какой-либо из подкаталогов не пуст, появится сообщение об ошибке, сообщающее, что удаление не удалось, а рассматриваемый подкаталог и его подкаталоги не удалены. Однако все пустые подкаталоги удаляются.
Будьте очень осторожны с командой rm
. Неправильное использование может привести к удалению всех файлов на вашем жестком диске.
Вы также можете создать каталог, содержащий несколько подкаталогов, или дерево каталогов, используя одну команду.