Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Greek
  • Search

chmod

Καλώs ήρθατε στο ελληνικό φόρουμ του Gentoo!
Post Reply
  • Print view
Advanced search
6 posts • Page 1 of 1
Author
Message
ksenos
Apprentice
Apprentice
User avatar
Posts: 164
Joined: Thu Nov 06, 2003 11:19 pm
Location: Athens, Greece
Contact:
Contact ksenos
Website

chmod

  • Quote

Post by ksenos » Fri Dec 12, 2003 8:16 pm

Γεια και χαρά σε όλους.

Θα ήθελα να ρωτήσω το εξής:

Στο directory με τα mp3 ήθελα να αλλάξω λίγο τα access rights ώστε να μπορούν να τα ακούν και οι αδελφές μου. Οπότε και χρησιμοποιήσα chmod -R 644 *. Το πρόβλημα που προέκυψε απο αυτό ήταν οτι τα directories δεν μπορούσαν να ανοιχθούν. Έτσι αναγκαστικά έτρεξα chmod -R 755 *. Έψαξα πολύ αλλά δεν κατάφερα να βρώ τρόπο να ξεχωρίσω directory απο αρχείο χρησιμοποιώντας κάποιο switch. Τώρα το να κάτσω να μπαίνω σε κάθε υποκατάλογο και να αλλάζω τα access rights των περιεχομένων αρχείων είναι κάτι πολύ επίπονο γιατι γίνεται ένα χάος με subdirectories. Θα μπορούσε κανείς να μου δείξει κάποιο script που θα μπορούσα να τρέξω για να κάνω τα παραπάνω? Ευχαριστώ εκ των προτέρων.

Κώστας
Honor guide me...
Top
parapente
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 140
Joined: Mon Jul 28, 2003 8:07 pm
Location: Greece

  • Quote

Post by parapente » Fri Dec 12, 2003 9:58 pm

Bash rulez! :D
Ελπίζω να δουλέψει καλά και σε εσένα. Προγραμματισμός + δοκιμή δεν πήρε παραπάνω από 5 λεπτά :P . Το τρέχεις ως εξής:

πρόγραμμα φάκελος_με_mp3_με_λάθος_δικαιώματα

Code: Select all

#!/bin/bash

IFS="^M"
traverse()
{
dir=$1
for i in $dir/*;do
        echo $i
        if [ -d $i ]; then
                chmod 755 $i
                traverse $i;
        else
                chmod 644 $i;
        fi
done
}

if [ "$1" != "" ]; then
        traverse $1;
else
        echo "Syntax: $0 dir";
fi
Top
ksenos
Apprentice
Apprentice
User avatar
Posts: 164
Joined: Thu Nov 06, 2003 11:19 pm
Location: Athens, Greece
Contact:
Contact ksenos
Website

  • Quote

Post by ksenos » Fri Dec 12, 2003 11:10 pm

Tnx :)

Omos den doulepse :( . Eno proxoraei kanonika apo kapoio simeio kai meta mou bgazei permision denied sta directories. Kai sto telos to directory pou to dino os parameter mou to bgazei me rights 644. Katalabaino pos douleyei to script kai mou fainetai sosto kai mena omos den mporo na katalabo giati ta petaei ayta :(. Mipos ta paizei eksaitias ton onomatwn ton arxeion kai ton fakelon? Px exo arketa directories pou stin arxi tous bazo i ena ~ i ena _ oste sto sorting na ksexorizoun (einai katigories tragoudion :wink: ). Enigouei tha to palepso kamposo giati einai blakeia na kano double click apo kana filemanager kai na prospathei na to ektelesei anti na to anoiksei me to xmms. Tnx kai pali :D.

p.s. tha sou edina to output alla tha itan terastio gia na to kano post. sin tois allois den ksero an ginetai redirect to stderr se arxeio :oops:
Honor guide me...
Top
parapente
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 140
Joined: Mon Jul 28, 2003 8:07 pm
Location: Greece

  • Quote

Post by parapente » Sat Dec 13, 2003 12:48 am

Χμμμ... Τα ~ ίσως προκαλούν κάποια ψιλοπροβληματάκια στο scipt. Τα _ δεν νομίζω. Μπορείς να ανακατευθύνεις το stderr βάζοντας 2> αντί για >. Πχ. αν το ονόμασες το script μου chn τότε αρκεί να δώσεις:

Code: Select all

chn 2> errors
Επίσης μπορείς στο συγκεκριμένο scipt να αφαιρέσεις την γραμμή "echo $i" οπότε ότι πάρεις θα είναι μόνο τα errors.
Top
ksenos
Apprentice
Apprentice
User avatar
Posts: 164
Joined: Thu Nov 06, 2003 11:19 pm
Location: Athens, Greece
Contact:
Contact ksenos
Website

  • Quote

Post by ksenos » Sat Dec 13, 2003 10:40 am

Τελικά τα κατάφερα. Έκανα μερικές μικρούλες αλλαγές (πρόσθεσα μερικα ") και δούλεψε κανονικά. Δεν φταίγαν ουτε τα ~ ουτε τα _ αλλά τα κενά που είχαν τα ονόματα των directories.

Code: Select all

#!/bin/bash

IFS="^M"
traverse()
{
dir=$1
for i in "$dir"/*;do
#        echo $i
   if [ -d "$i" ]; then                
        	traverse "$i";
   else
        	chmod 644 "$i";
   fi
done
}

if [ "$1" != "" ]; then
        traverse "$1";
else
        echo "Syntax: $0 dir";
fi 
Honor guide me...
Top
parapente
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 140
Joined: Mon Jul 28, 2003 8:07 pm
Location: Greece

  • Quote

Post by parapente » Sat Dec 13, 2003 9:35 pm

Χμμμ... ναι. Έχει δίκαιο. Ξέχασα να πώ ότι το ^M είναι ουσιαστικά ο χαρακτήρας Ctrl+M. Αν το αντικαταστήσεις στο IFS δεν θα χρειάζεσαι και τα "" :wink:
Top
Post Reply
  • Print view

6 posts • Page 1 of 1

Return to “Greek”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic