Vaclav Ryc
Vaclav Ryc

Reputation: 13

how to script folder deletion on MAC

I believe it should be straight forward but either I am having a bad day or I simply can't find what I am looking for.

Please help.

I need to run following commands in MAC Terminal in order to get rid of following entries:

sudo rm -Rf /Applications/Network\ Connect.app
sudo rm -Rf /Library/Frameworks/net.juniper.DSApplicationServices.framework
sudo rm -Rf /Library/Frameworks/net.juniper.DSCoreServices.framework
sudo rm -Rf /Library/Frameworks/net.juniper.DSNetworkDiagnostics.framework
sudo rm -Rf /Library/Internet\ Plug-ins/net.juniper.DSSafariExtensions.plugin
sudo rm -Rf /Library/Widgets/Network\ Connect.wdgt
sudo rm -Rf /usr/local/juniper
sudo rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.bom
sudo rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.plist
sudo rm -Rf ~/Library/Preferences/ncproxyd.plist

It does it's job but it's not exactly elegant. I was also thinking about providing this to my colleagues so I wanted to create some sort of .bat file for MAC.

I really spent about half day trying to figure it out but it doesn't work :(

Can somebody help me to create a .sh file or bash file which will do execute the commands above?

Upvotes: 1

Views: 339

Answers (2)

David W.
David W.

Reputation: 107030

If you want to create a batch file, you have one. That list of commands is your shell script. To execute it, just save hem into a file add the bash command to the front of that file's name:

$ bash commands_I_want_to_execute.txt

If you want to get fancy, you can put a shebang on the top and set the execution bit using chmod. That will make your script a real shell script.

However, in order for your shell script to be found, you need to either prefix it with a path, or put it in a directory that's included in your PATH. Here, I'll just prefix it:

$ chmod a+x commands_I_want_to_execute.txt  # Suffix doesn't really matter. It's executable
$ ./commands_I_want_to_execute.txt          # Now this will be executed

If you are really bothered by the suffix, change it with the mv command:

$ mv commands_I_want_to_execute.txt commands_I_want_to_execute.sh

NOTE: If you create a file with Text Edit, create it as a plain text file and not as a RTF file.

Upvotes: 0

TheDarkKnight
TheDarkKnight

Reputation: 27611

Create a script file, let's say it's called deletion.sh and add the lines: -

#!/bin/bash
rm -Rf /Applications/Network\ Connect.app
rm -Rf /Library/Frameworks/net.juniper.DSApplicationServices.framework
rm -Rf /Library/Frameworks/net.juniper.DSCoreServices.framework
rm -Rf /Library/Frameworks/net.juniper.DSNetworkDiagnostics.framework
rm -Rf /Library/Internet\ Plug-ins/net.juniper.DSSafariExtensions.plugin
rm -Rf /Library/Widgets/Network\ Connect.wdgt
rm -Rf /usr/local/juniper
rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.bom
rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.plist
rm -Rf ~/Library/Preferences/ncproxyd.plist

Then, in terminal you need to set the executable flag to the script: -

chmod +x deletion.sh

Note that the executable flag may be removed when the script is copied to another machine or network drive, so you may have to do that after copying.

Finally, you can call the script with sudo

sudo ./deletion.sh

Upvotes: 3

Related Questions