Simple loop


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Simple loop
# 1  
Old 07-08-2009
Simple loop

I need to chmod a bunch of files with a specific extension in one directory.

If I understand correctly first I would run ls command like this

ls -R | grep .mp3 > /tmp/list

once I have the output file I should be able to run a loop to chmod all the files in the list created.
This is where I am not sure on how to do this.
Here is what I have tried.

for i in /tmp/list ; chmod 777 "$i"

But i get an error

-bash: syntax error near unexpected token `chmod'
# 2  
Old 07-08-2009
All you need to do is cd into the directory and...

chmod 777 *.mp3
# 3  
Old 07-08-2009
Code:
ls *.mp3 | xargs chmod 777

# 4  
Old 07-08-2009
Thanks, I knew there was a simpler way to do it, but since I am a noob, i just wanted to see what other options I have to learn some new stuff.
# 5  
Old 07-09-2009
Quote:
Originally Posted by vgersh99
Code:
ls *.mp3 | xargs chmod 777

Why not just
Code:
chmod 777 *.mp3

?

=> eugenes18t: in you code
Code:
for i in /tmp/list ; chmod 777 "$i"

there are two errors.
  1. the for i part would only go through the filename, not the contents of the file.
  2. Syntax error in the for loop is a missing keyword do after the semicolon.
And, oh, do you really want to give read+write access to all users? A simple
Code:
chmod u=rwx,g=r,o=r

should be enough?

Regards,

pen
# 6  
Old 07-09-2009
Just using find will work for a single or more complex directory structure.

Code:
find /directory/path *.mp3 -exec chmod 744 {} \;

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Simple loop using for

Dear experts, I am writing a bash script. At some point of the program I need to have 'for' loop. For simplicity I tried with some other simple code. The format of the loop is given below. k=51 m=55 for j in {$k..$m};do w=$(($j+2)) z=$(($j+9)) echo "$w, $z" done But my... (4 Replies)
Discussion started by: vjramana
4 Replies

2. Shell Programming and Scripting

a simple loop

Does any body can help me with a loop in this example? if then if then runner=$(grep "$1" "$2") runne=$(grep "$1" "$3") run=$(grep "$1" "$4") fi fi # # Message on screen... (3 Replies)
Discussion started by: bartsimpsong
3 Replies

3. Shell Programming and Scripting

Simple using For loop

Hi expert, I'm using csh Code: #!/bin/csh set x = 0 set number = `awk '{array=$0} END {print array;}'` i want to use for loop to store data to $number repeatly untill x = 23 How to use c shell for loop? (2 Replies)
Discussion started by: vincyoxy
2 Replies

4. Shell Programming and Scripting

A simple (?) loop

I have what I believe is a simple programming question. I have a text file that looks like: mol 1 G:\stereo01.hin block text ... ... ... endmol 1 However, I would like a file that repeats this entire block of text several times over. The lines of text in the middle remain the same for each... (2 Replies)
Discussion started by: red baron
2 Replies

5. UNIX for Dummies Questions & Answers

a simple loop in csh

Hello, I have a file with over 48000 lines and I need to select certain parts of the file. I know which awk commands work for what I need, I just need some help putting together a loop that will repeat the command. These are the commands that work: awk 'NR < 6' plot.out > plot.test (I get... (1 Reply)
Discussion started by: dsstamps
1 Replies

6. Shell Programming and Scripting

simple while loop

i have a script called file2 #!/bin/ksh i=0 while do echo $i >> result.txt i=`expr $i + 1` done echo "***********************" >> result ------------------------------------------------------------------- (10 Replies)
Discussion started by: ali560045
10 Replies

7. Shell Programming and Scripting

simple for loop

i have the following process running in background: when i give "ps -lef" ------------------------------------------------------------------------ user2 user1 user1 user3 user1 user4 user5 user4 user3 user4 user2 user1 user1 user3 user1 user4 (3 Replies)
Discussion started by: ali560045
3 Replies

8. UNIX for Dummies Questions & Answers

Simple loop query

Hi All Just started with shell scripts and am stumped by, what is to most of you no doubt, a simple issue. All I'm trying to do is prompt a user for input and writing to a log file. If the user types the word 'stop', then the program should halt. If the word typed is 'clear', then the log file... (2 Replies)
Discussion started by: kutz13
2 Replies

9. Shell Programming and Scripting

Simple while loop question

I have written a script that countsdown from 20 to 1 and has a sleep in between each count but I want to make it sleep for half a second but I get errors whenever I change the sleep from 1 second to half a second any ideas? I am using Sun OS 5.9 heres what I've got: X=0 while do echo... (3 Replies)
Discussion started by: Brokeback
3 Replies

10. Shell Programming and Scripting

a simple while loop

Hallo everyone I might just be being dumb, but I am using the BASH shell and cannot get the following script to work: x=0 while do echo $x x=´echo "$x + 1" | bc´ done Can anybody help me out. I am just get a repeating output saying: bc: command not found 0 + 1: command not... (5 Replies)
Discussion started by: syno
5 Replies
Login or Register to Ask a Question