Thursday, February 17, 2011

Bash delete directories except that one

Ran into a scenario where I needed to delete all subdirectories of target except target/keepme/. So I want rm -rf target/subdir1 target/subdir2 ... target/subdirN with one directory omitted. I want to use grep to remove the directory I want to keep from the list so something like this should work:


  1. Print the list of directories echo target/*/
  2. Flip space separator to newline  tr " " "\n"
  3. Remove the line for the directory to keep grep -v keepme
  4. Flip newline back to space  tr "\n" " "
  5. Run rm -rf on the results from steps 1-4

As a 1-liner:

rm -rf $(echo target/*/ | tr " " "\n" | grep -v keepme | tr "\n" " ")

Noting it in case I need to do it again someday ;)

5 comments:

Kamran Zafar said...

How about this one:

find target/* ! -iname keepme -print0 | xargs -0 rm -rf

this works for me

Mounika said...

A universal message I suppose, not giving up is the formula for success I think. Some things take longer than others to accomplish, so people must understand that they should have their eyes on the goal, and that should keep them motivated to see it out til the end.
python Training institute in Pune
python Training institute in Chennai
python Training institute in Bangalore

priya said...

It's interesting that many of the bloggers to helped clarify a few things for me as well as giving.Most of ideas can be nice content.The people to give them a good shake to get your point and across the command
Data Science training in Chennai
Data science training in Bangalore
Data science training in pune
Data science online training
Data Science Interview questions and answers
Data Science Tutorial
Data science training in bangalore

Huongkvb said...

Mua vé tại Aivivu, tham khảo

giá vé máy bay đi Mỹ khứ hồi

có chuyến bay từ mỹ về việt nam

đặt vé máy bay từ đức về việt nam

giá vé máy bay nga về việt nam

giá vé máy bay từ anh về việt nam

ve may bay tu phap ve viet nam

khách sạn cách ly ở tây ninh

chuyen bay danh cho chuyen gia

David Fincher said...

This post is so interactive and informative.keep update more information...
German Classes in Velachery
German Classes in chennai

Post a Comment