Shell scripting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell scripting
# 1  
Old 12-08-2016
Shell scripting

Hi Guys

I found a script that is doing some cleanups on the server. The script remove the users folders...

Now, I have two users that I don't want the script to remove their folders...The commands used on the scripts is as follows:

Code:
rm -rf /home/??*/folder_*
rm -rf /home/?/*/folder_*

What does the ??*/ and /?/* mean?

I want to use an IF statement with OR to make sure that folders for that particular user are not deleted.

If I can understand what the two ??*/ and /?/* does or mean. I would appreciate.

Please help !!!

Thanks in advance...

Last edited by Don Cragun; 12-08-2016 at 04:39 AM.. Reason: Add CODE and ICODE tags, again.
# 2  
Old 12-08-2016
its wildcard

refer more details from this link

Code:
?	any single character, except a leading dot
*	zero or more characters, except a leading dot
[ ]	defines a class of characters ( - for range, ! to exclude)

This User Gave Thanks to itkamaraj For This Post:
# 3  
Old 12-08-2016
Your two commands recursively remove directories that match the pattern. The patterns are:-
  • /home/??*/folder_* - files and directories called folder_ or anything starting folder_ under /home that the intermediate directory is at least two characters long
  • /home/?/folder_* - files and directories called folder_ or anything starting folder_ under /home that the intermediate directory is exactly one character long
Oddly, this means the same as pattern /home/?*/folder_* when you run them sequentially, however this might have been done if there are many matches and when expanded the overall rm command exceeds the maximum command length. It also ignores anything that matches zero characters for the intermediate directory, such as /home/folder_1

Consider this instead:-
Code:
find /home -name "folder_*" -exec echo rm -rf {} \;

This will search for files (be they regular files, pipes, directories, sockets etc.) under /home called or starting folder_ and remove them if you drop the echo

This will, however remove items called /home/robin/saved/folder_1 too.

You can limit this to just look for directories by adding a -type d clause.
You can limit the depth it will search to using the -mindepth & -maxdepth clauses if your version of find supports them. If find doesn't support them, you might have to force it some other way, such as with an extended regular expression of some sort.


I encourage you to safely have a go and tell us if you get stuck. Only let the rm run once you are sure it will do exactly what you want.

Does this help?

Robin
This User Gave Thanks to rbatte1 For This Post:
# 4  
Old 12-08-2016
Quote:
Originally Posted by Phuti
Hi Guys

I found a script that is doing some cleanups on the server. The script remove the users folders...

Now, I have two users that I don't want the script to remove their folders
You didn't specify, whether you want to use a specific shell for your script. If it is fine for you to use zsh, there is an interesting features which allows you to do globbing, but to exclude certain directory entries. Assuming that the users to exclude are 'stan' and 'olli', you could write something like

Code:
setopt local_options extended_glob
for home in /home/(*~(stan|olli))(N)
do
   # Remove entries starting with name 'folder_' below directory $home
   rm -rf $home/folder_*
done

The setopt command turns on the special "exclusion feature", and the (N) ensures that the loop is skipped if no files match the pattern.
These 2 Users Gave Thanks to rovf For This Post:
# 5  
Old 12-08-2016
A similar thing is possible in (recent) bash with the extglob option set:
Code:
shopt -s extglob
for DIR in !(AL|LA)/; do echo $DIR; done

should list ALL directories except AL and LA.
These 3 Users Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

2. Shell Programming and Scripting

help me in Shell Scripting

Hi there please have a look at the code..i want to create Using a named pipe. Run a find in the background starting in the working directory While this is happening wait for input from the user to ask him which file to find. If the user does not enter any data in 10 seconds ask the user again.... (1 Reply)
Discussion started by: kattak1511
1 Replies

3. Shell Programming and Scripting

Shell scripting

Hi, if in a network there are lots of PCs connected with either windows or linux as operating system.Then what will be the shell script for the same and also if the PC has linux in it then we have to find if it is occupied or unoccupied. If the PC has windows in it then we have to find if it is... (6 Replies)
Discussion started by: akansha singh
6 Replies

4. UNIX for Dummies Questions & Answers

Shell Scripting

Hey I have a data in the file named as outputFile.txt. The data is in the format 123456,12345678912345,400,09/09/09,INACTIVE. I want this output without commas ie 12345612345678912345400090909INACTIVE. Please tell me what to do and clear explain all the terms, as I am new to it. (6 Replies)
Discussion started by: sampandey31
6 Replies

5. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

6. What is on Your Mind?

Shell Scripting vs Perl scripting

Gents, I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
Discussion started by: Pouchie1
2 Replies

7. Android

Android Scripting Environment: Shell Scripting and Android

I just upgraded to Android 2.2 from 2.1. The GPS issue that was troublesome in 2.1 seems to have been fixed. Some of web browsing seems faster, but it could just be my connection is better today ;) Flash works in some browsers but not very good and it is too slow for Flash apps designed for... (0 Replies)
Discussion started by: Neo
0 Replies

8. What is on Your Mind?

Shell scripting vs Perl scripting

Hi all, I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first. Can you please help me determine which one to... (14 Replies)
Discussion started by: Pouchie1
14 Replies

9. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
Login or Register to Ask a Question