Удалите все файлы в каталоге с помощью шеф-повара

Попытка удалить непустую папку:

directory "C:\tempdirectory" do
 action :delete
end

... в Шеф-поваре я получаю:

Errno::ENOTEMPTY
Directory not empty

Есть ли быстрый способ удалить все файлы в каталоге?

Или аргумент или флаг, позволяющий мне удалять непустые каталоги?

Ответы

Ответ 1

Если я правильно помню, установка атрибута recursive true заставит удалить непустые каталоги.

Документы для directory LWRP не описывают это поведение, но они предоставляют этот пример использования:

directory "/tmp/something" do
  recursive true
  action :delete
end

Документы с тех пор были изменены, чтобы загадочно сказать:

recursive
Типы Ruby: TrueClass, FalseClass

Рекурсивно создавать или удалять родительские каталоги. Для свойств владельца, группы и режима значение этого атрибута относится только к каталогу листа.
Значение по умолчанию: false.

Они до сих пор не говорят, что для удаления непустых каталогов требуется < recursive true. Без этого параметра попытка удалить непустую директорию завершится неудачей с сообщением: Errno::ENOTEMPTY Directory not empty ".

Ответ 2

Вам нужно добавить опцию recursive true. Эта опция удалит все каталоги.