Finding the directories with same permission and then apply some default UNIX commands


 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Finding the directories with same permission and then apply some default UNIX commands
# 1  
Old 11-06-2012
Finding the directories with same permission and then apply some default UNIX commands

Write a Unix shell script named 'mode' that accepts two or more arguments, a file mode, a command and an optional list of parameters and performs the given command with the optional parameters on all files with that given mode.
For example, mode 644 ls -l should perform the command ls -l on all files in the current directory that have mode 644.

I came up with this code. how can I ask the code to apply the rest of arguments in the command line to the result of the script?

Code:
#!/bin/sh

mode=$1

shift 1 

ls -l |awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/) \
         *2^(8-i));if(k)printf("%0o ",k);print }'|grep "$mode"

Langara College - Vancouver - Canada , Hengameh Farrahmand, CPSC 1280
(it is my first post I hope I follow all the rules )

Last edited by femchi; 11-06-2012 at 09:42 PM..
# 2  
Old 11-06-2012
Why to reinvent the wheel ?

Code:
man find

see the -perm option

if it is related to translation to mode octal value you may also be interested in the following :
Code:
conv_perm(){ 
binary1=`echo "$1"|cut -c4,7,10|tr xstST- 011110`
binary2=`echo "$1"|cut -c2-10|tr rwsxtST- 11111000` 
octal=`echo "obase=8;ibase=2;${binary1}${binary2}"|bc`
echo "$octal" 
}  
$ ls -l dbs* | awk '{print$1,$9}' 
-rwxr-xr-x dbshut 
-rwsr-s--- dbsnmp 
-rwxr-xr-x dbsnmp0 
-rwxr-xr-x dbsnmpj 
-rw-r--r-- dbsnmpj0 
-rwsr-s--- dbsnmp.sav 
-rwxr-xr-x dbsnmpwd 
-rwxr-xr-x dbstart 
$ ls -l dbs* | while read a b b b b b b b b 
> do 
> printf "%4d %s\n" $(conv_perm $a) $b 
> done  
 755 dbshut 
6750 dbsnmp  
 755 dbsnmp0  
 755 dbsnmpj  
 644 dbsnmpj0 
6750 dbsnmp.sav  
 755 dbsnmpwd  
 755 dbstart 
$

# 3  
Old 11-06-2012
ok. the the code should be like this
Code:
#!/bin/sh
perm=$1
shift
find . -perm $perm $* {} \;

but my problem is that I dont know how I should apply the rest of the command line to the result of "find"
also let me check the code with "find" too
# 4  
Old 11-06-2012
Code:
man find

see -exec option
This User Gave Thanks to ctsgnb For This Post:
# 5  
Old 11-06-2012
Code:
#!/bin/sh

permission=$1

shift

find . -maxdepth 1 -perm $permission -exec $* {} \;

(fixed)

Last edited by femchi; 11-06-2012 at 10:54 PM.. Reason: Fixed
# 6  
Old 11-06-2012
Probably worth checking to ensure 2 or more arguments are passed and when incorrect output message to stderr and set the exit code
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Solaris

Giving read write permission to user for specific directories and sub directories.

I have searched this quite a long time but couldn't find the right method for me to use. I need to assign read write permission to the user for specific directories and it's sub directories and files. I do not want to use ACL. This is for Solaris. Please help. (1 Reply)
Discussion started by: blinkingdan
1 Replies

2. Shell Programming and Scripting

awk to match and apply condtions to matchijng files in directories

I am trying to merge the below awk, which compares two files looking for a match in $2 and then prints the line if two conditions are meet. awk awk 'FNR==NR{A=$0;next} ($2 in A){if($10>30 && $11>49){print A}}' F113.txt F113_tvc.bed This code was improved and provided by @RavinderSingh13,... (18 Replies)
Discussion started by: cmccabe
18 Replies

3. Shell Programming and Scripting

Finding the directories with same permission and then apply some default UNIX commands

HI there. My teacher asked us to write a code for this question Write a Unix shell script named 'mode' that accepts two or more arguments, a file mode, a command and an optional list of parameters and performs the given command with the optional parameters on all files with that given mode. ... (1 Reply)
Discussion started by: femchi
1 Replies

4. Shell Programming and Scripting

sed fails to apply substitute commands

I've made a shell script for archiving HTML pages, i.e. making them work offline plus add some features. Here is it: #!/bin/sh if || +/res/+") = "" ]; then echo "Usage: `basename $0` <4chan thread url> <>" exit 0 fi echo "4chan downloader" LOC=$(echo "$1" | sed... (23 Replies)
Discussion started by: Adolf1994
23 Replies

5. Shell Programming and Scripting

Apply file permission

Hi All, I would like to read the permission from a file and wanted to apply the same permission to another file. say for example, f1 755 first...i have to read the permission type (which is differ for each file) and need to apply the same for f2 a1 666 i have to get this... (5 Replies)
Discussion started by: karthi_mrkg
5 Replies

6. UNIX for Dummies Questions & Answers

Do UNIX Permission apply to sub directories?

Hi Guys, Can you tell me if unix permissions apply to sub dirs? Dir is /home/ops/batch/files/all /home is rwxrwxrwx ops is rwxrwxrwx batch is rwxr-wr-w files is rwxrwxrwx all is rwxrwxrwx Having problems writing to all (does the userid nee to be the batch owner... (1 Reply)
Discussion started by: Grueben
1 Replies

7. Shell Programming and Scripting

Re-apply the file permission

Hi, I having an issue with file permission. To fix it I need to read the file's existing permission and re-apply the same permission to the file. This has to be done for every single file under a mount point. I'm novice in scripting. Help me with this in shell scripting. # ls -l /dev/null... (10 Replies)
Discussion started by: agent001
10 Replies

8. Shell Programming and Scripting

Script for parsing directories one level and finding directories older than n days

Hello all, Here's the deal...I have one directory with many subdirs and files. What I want to find out is who is keeping old files and directories...say files and dirs that they didn't use since a number of n days, only one level under the initial dir. Output to a file. A script for... (5 Replies)
Discussion started by: ejianu
5 Replies

9. UNIX for Dummies Questions & Answers

finding directories in UNIX

I am accessing a UNIX server via FTP. I want to retieve a file in a directory. What is the UNIX command that I need to view and retrieve files from a directory? (1 Reply)
Discussion started by: yodaddy
1 Replies
Login or Register to Ask a Question