Поиск по сайту:

Как удалить несколько подкаталогов с помощью одной команды 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. Неправильное использование может привести к удалению всех файлов на вашем жестком диске.

Вы также можете создать каталог, содержащий несколько подкаталогов, или дерево каталогов, используя одну команду.