Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete all files in a directory using Chef

Tags:

Attempting to delete a non-empty folder:

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

... in Chef I receive:

Errno::ENOTEMPTY Directory not empty 

Is there a quick way to delete all files in the directory?

Or an argument or flag to allow me to delete non-empty directories?

like image 852
DonBecker Avatar asked Apr 18 '14 14:04

DonBecker


People also ask

Which command is used to delete all files in a directory?

Use the rm command to remove files you no longer need. The rm command removes the entries for a specified file, group of files, or certain select files from a list within a directory.


2 Answers

If I recall correctly, setting the recursive true attribute will force remove non-empty directories.

The docs for the directory LWRP don't describe this behavior, but they do provide this usage example:

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

The docs have since been amended to cryptically say:

recursive
Ruby Types: TrueClass, FalseClass

Create or delete parent directories recursively. For the owner, group, and mode properties, the value of this attribute applies only to the leaf directory.
Default value: false.

They still stop short of saying "recursive true is required to delete non-empty directories. Without this setting, attempting to delete a non-empty directory will fail with the message: Errno::ENOTEMPTY Directory not empty".

like image 140
Patrick M Avatar answered Sep 27 '22 21:09

Patrick M


You have to add the recursive true option. This option will remove all the directories.

like image 44
Mohan Karthik Sanagapalli Avatar answered Sep 27 '22 23:09

Mohan Karthik Sanagapalli