Σελ. 7 από 149 ΠρώτηΠρώτη ... 256789121727 ... ΤελευταίαΤελευταία
Εμφάνιση 91-105 από 2232
  1. #91
    Το avatar του μέλους mistral
    mistral Guest
    ...πάνω που αναρωτιόμουν πιό thread να διαβάζω για να χάσω και ότι λίγο μυαλό μούχει απομείνει

    Καλή χρονιά σε όλους σας !

  2. #92
    Εγγραφή
    20-06-2007
    Περιοχή
    Chicago, Illinois
    Ηλικία
    32
    Μηνύματα
    30.632
    Downloads
    96
    Uploads
    25
    Άρθρα
    14
    Τύπος
    FTTH
    Ταχύτητα
    1 Gbps
    ISP
    Nova
    Καλησπερα

    Εφτιαχνα για πρωτη φορά script για την μεταφορα ενός αρχείου αλλα έχω κολλησει σε ένα χαζό σημείο

    Η δουλειά του είναι να αντιγραψει ένα αρχείο .tar.gz από το Desktop , να το μεταφερει στο /home/flamelab/new-package και εκεί να το κανει untar και cd στο νεο φακελο .

    Αλλα δεν ξερω πως μετά το untaring να θεσω στο script να κανει cd στο νεο φακελο μετα το untarring .

    Δείτε πως περιπου θελω να είναι το script

    Κώδικας:
    #!/bin/bash
    
    cd /
    cp /home/flamelab/Desktop/*.tar.gz /home/flamelab/new-package
    cd /home/flamelab/new-package
    tar -xvfz *.tar.gz 
    cd ---> Eδώ τι βαζουμε ? Πως γίνεται cd στο φακελο μετα το untarring ?
    nice -n 19 makepkg
    cp *.pkg.tar.gz /home/flamelab/local-repos/arch-local/amd64/custom/packages
    /bin/update-local-repo custom amd64
    Συγχωρεστε για λαθη , πρωτη φορά φτιαχνω script .

    Eπίσης θα ήθελα να βαλω καπου

    sleep -5 ( μαλλον στο πριν την εντολή makepkg που θελει χρόνο )

    Στα τεστ που του έκανα δεν δεχόταν την μεταβλητη .
    Τελευταία επεξεργασία από το μέλος flamelab : 06-02-08 στις 00:17.
    Dies, died, will die.
    Lived, lives, will live.

  3. #93
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490
    η πιο απλή περίπτωση, και εφόσον είναι ένα αρχείο που κάνεις untar

    cd `ls`

  4. #94
    Εγγραφή
    20-06-2007
    Περιοχή
    Chicago, Illinois
    Ηλικία
    32
    Μηνύματα
    30.632
    Downloads
    96
    Uploads
    25
    Άρθρα
    14
    Τύπος
    FTTH
    Ταχύτητα
    1 Gbps
    ISP
    Nova
    Παράθεση Αρχικό μήνυμα από anon Εμφάνιση μηνυμάτων
    η πιο απλή περίπτωση, και εφόσον είναι ένα αρχείο που κάνεις untar

    cd `ls`
    Δηλαδή

    Κώδικας:
    #!/bin/bash
    
    cd /
    cp /home/flamelab/Desktop/*.tar.gz /home/flamelab/new-package
    cd /home/flamelab/new-package
    tar -xvfz *.tar.gz 
    cd 'ls'  <-- αυτό ?
    nice -n 19 makepkg
    cp *.pkg.tar.gz /home/flamelab/local-repos/arch-local/amd64/custom/packages
    /bin/update-local-repo custom amd64
    Δυστυχως το terminal λεει ότι είναι λαθος

    Κώδικας:
    [flamelab@flamepc Desktop]$ ./new-package
    tar: z: Cannot open: No such file or directory
    tar: Error is not recoverable: exiting now
    ./new-package: line 7: cd: ls: No such file or directory
    ./new-package: line 8: cd: ls: No such file or directory
    ==> ERROR: PKGBUILD does not exist.
    cp: cannot stat `*.pkg.tar.gz': No such file or directory
    ==> Adding package '/home/local-repos/arch-local/amd64/custom/packages/catalyst-7.12-2-x86_64.pkg.tar.gz'
      -> Creating 'desc' db entry...
      -> Computing md5 checksums...
      -> Creating 'depends' db entry...
    ==> Adding package '/home/local-repos/arch-local/amd64/custom/packages/firefox-branded-2.0.0.11-1-x86_64.pkg.tar.gz'
      -> Creating 'desc' db entry...
      -> Computing md5 checksums...
      -> Creating 'depends' db entry...
    ==> Adding package '/home/local-repos/arch-local/amd64/custom/packages/virtualbox_bin-1.5.4-4-x86_64.pkg.tar.gz'
      -> Creating 'desc' db entry...
      -> Computing md5 checksums...
      -> Creating 'depends' db entry...
    ==> Adding package '/home/local-repos/arch-local/amd64/custom/packages/yaourt-0.8.7-1-x86_64.pkg.tar.gz'
      -> Creating 'desc' db entry...
      -> Computing md5 checksums...
      -> Creating 'depends' db entry...
    ==> Creating updated database file /home/local-repos/arch-local/amd64/custom/packages/custom.db.tar.gz
    [flamelab@flamepc Desktop]$
    Aυτός ο φακελος έχει άλλο ένα φακελο , αρα θελω να κανω cd μεσα σε δύο επιπεδα (γι'αυτό εχει δυο cd )
    Τελευταία επεξεργασία από το μέλος flamelab : 06-02-08 στις 00:23.
    Dies, died, will die.
    Lived, lives, will live.

  5. #95
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490

  6. #96
    Εγγραφή
    20-06-2007
    Περιοχή
    Chicago, Illinois
    Ηλικία
    32
    Μηνύματα
    30.632
    Downloads
    96
    Uploads
    25
    Άρθρα
    14
    Τύπος
    FTTH
    Ταχύτητα
    1 Gbps
    ISP
    Nova
    Παράθεση Αρχικό μήνυμα από anon Εμφάνιση μηνυμάτων
    οχι το single quote αλλά το ` που ειναι πάνω απο το ΤΑΒ
    Ευχαριστώ

    Το τελικό script
    Κώδικας:
    #!/bin/bash
    
    cd /
    cp /home/flamelab/Desktop/*.tar.gz /home/flamelab/new-package
    cd /home/flamelab/new-package
    tar -xvf *.tar.gz 
    cd `ls
    cd `ls
    nice -n 19 makepkg
    cp *.pkg.tar.gz /home/flamelab/local-repos/arch-local/amd64/custom/packages
    /bin/update-local-repo custom amd64

    EDIT !


    Δεν αντιγραφει όμως το αρχείο με καταληξη .pkg.tar.gz εκεί που θελω !

    Κώδικας:
    ==> Finished making: picasa (Tue Feb  5 13:31:27 PST 2008)
    cp: cannot create regular file `/home/flamelab/local-repos/arch-local/amd64/custom/packages': No such file or directory
    Τελευταία επεξεργασία από το μέλος flamelab : 06-02-08 στις 00:32.
    Dies, died, will die.
    Lived, lives, will live.

  7. #97
    Εγγραφή
    13-12-2005
    Ηλικία
    44
    Μηνύματα
    512
    Downloads
    2
    Uploads
    0
    Τύπος
    ADSL2+
    ISP
    HOL
    Πρώτον, θέλει μέσα σε δύο ανάποδα quotes.

    Δεύτερον, τα 2 απανωτά cd θα δουλέψουν, αλλά σε περίπτωση που δεν υπάρχει δεύτερος κατάλογος θα πάρεις μήνυμα λάθους. Επίσης πιθανόν να υπάρχει δεύτερος κατάλογος και να μην τον θες (π.χ. docs). Οπότε κανονικά πρέπει να ελέγχεις αν το output της ls είναι 1 γραμμή μόνο. π.χ.

    Κώδικας:
    NLINES=`ls | wc -l`
    [ $NLINES == "1" ] && cd `ls`
    και μια βελτίωση είναι να ελέγχεις επίσης αν πρόκειται για κατάλογο πριν το cd:
    Κώδικας:
    if [ $NLINES == "1" ]; then
      MYDIR=`ls`
      [ -d "$MYDIR" ] && cd "$MYDIR"
    fi
    Τελευταία επεξεργασία από το μέλος hot_swapper : 06-02-08 στις 00:34.

  8. #98
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490
    το ls πρέπει να έχει backquote και απο τις δύο μεριές

    `ls`

    ουσιαστικά στο shell, με το backquote λέμε να εκτελέσει ότι εντολές έχει μέσα, σαν να τις δίναμε απο την γραμμή εντολών, και αφήνει το αποτέλεσμα. οπότε στο cd `ls`
    εκτελείται πρώτα το ls, και ότι θα μας έφερνε σαν αποτέλεσμα μπαίνει στην θέση του `ls` οπότε η εντολή μας γίνεται cd {όνομα directory}
    υποθέτοντας βέβαια ότι είναι μόνο ένα.
    Εαν δεν ισχύει αυτό, δηλαδή να είναι μόνο ένας κατάλογος, τότε πρέπει να κάνουμε την εντολή λιγο πιο πολύπλοκη. πχ εαν έχει και αρχείο, αλλά ξέρουμε ότι είναι μόνος ένας κατάλογος μπορούμε αντί για ls να έχουμε ls -d *


    Eαν έχουμε περισσότερους του ενός καταλόγους, τότε θαναι δύσκολο να επιλέξουμε τον σωστό κατάλογο απο ένα ls. Θα πρέπει να το βρούμε απο πιο πριν απο το script. Πχ είναι ένα tar.gz αρχείο και έχοντας υπόψη την κοινή παραδοχή ότι το όνομα κάνει και ίδιο directory τότε μπορείς να κάνεις το εξής
    fname=`ls *.tar.gz | head -1`
    dirname=`echo $fname | cut -f1 --delimiter='.'`
    Τελευταία επεξεργασία από το μέλος anon : 06-02-08 στις 00:39.

  9. #99
    Εγγραφή
    20-06-2007
    Περιοχή
    Chicago, Illinois
    Ηλικία
    32
    Μηνύματα
    30.632
    Downloads
    96
    Uploads
    25
    Άρθρα
    14
    Τύπος
    FTTH
    Ταχύτητα
    1 Gbps
    ISP
    Nova
    Παράθεση Αρχικό μήνυμα από anon Εμφάνιση μηνυμάτων
    το ls πρέπει να έχει backquote και απο τις δύο μεριές

    `ls`

    ουσιαστικά στο shell, με το backquote λέμε να εκτελέσει ότι εντολές έχει μέσα, σαν να τις δίναμε απο την γραμμή εντολών, και αφήνει το αποτέλεσμα. οπότε στο cd `ls`
    εκτελείται πρώτα το ls, και ότι θα μας έφερνε σαν αποτέλεσμα μπαίνει στην θέση του `ls` οπότε η εντολή μας γίνεται cd {όνομα directory}
    υποθέτοντας βέβαια ότι είναι μόνο ένα.
    Εαν δεν ισχύει αυτό, δηλαδή να είναι μόνο ένας κατάλογος, τότε πρέπει να κάνουμε την εντολή λιγο πιο πολύπλοκη. πχ εαν έχει και αρχείο, αλλά ξέρουμε ότι είναι μόνος ένας κατάλογος μπορούμε αντί για ls να έχουμε ls -d *
    Ωραία , δεχθηκε το `ls`

    Βγαζει όμως για καποιο λογο αυτό

    Κώδικας:
    cp: cannot create regular file `/home/flamelab/local-repos/arch-local/amd64/custom/packages': No such file or directory
    Eνώ υπαρχει αυτό το dir και το αρχείο που θελω να κανω cp .

    Και μετά θα ήθελα να γίνει rmdir του new-package στο /home/flamelab , με ότι αρχειο έχει μεσα γιατί παραπονιεται η bash .


    ΟΚ και αυτά από πανω .

    Για το πρωτο : είχα κανει τυπογραφικό , για το δεύτερο εβαλα
    Κώδικας:
     rm -r





    Edit : Γίνεται , ενώ δεν είμαι root ( αυτά επανω απαγορεύονται ενώ είμαι root ) , να μπει εντολή να γίνω root ? Σκετο su ?
    Τελευταία επεξεργασία από το μέλος flamelab : 06-02-08 στις 00:49.
    Dies, died, will die.
    Lived, lives, will live.

  10. #100
    Εγγραφή
    05-12-2005
    Περιοχή
    ~ sweet ~
    Ηλικία
    41
    Μηνύματα
    254
    Downloads
    9
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    6243/999
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΝΙΚΑΙΑ
    Router
    Pirelli
    SNR / Attn
    8(dB) / 45(dB)
    Ερώτηση: Για να κάνουμε rename πολλά αρχεία πως δουλεύουμε?

    Χρησιμοποιώ το εξής
    Κώδικας:
    for file in *.txt ;do foo=`echo $file | cut -d. -f1`;mv $file $foo; done
    για να κόψω την κατάληξη .txt σε πολλά αρχεία μαζί.

    Για να κάνω append την κατάληξη .txt στο filename κάθε αρχείου πως το κάνω;
    Desktop: Kubuntu | Server: Debian testing


  11. #101
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490
    Παράθεση Αρχικό μήνυμα από flamelab Εμφάνιση μηνυμάτων
    Edit : Γίνεται , ενώ δεν είμαι root ( αυτά επανω απαγορεύονται ενώ είμαι root ) , να μπει εντολή να γίνω root ? Σκετο su ?

    oxi su. τις εντολές που πρέπει να τρέξουν με root δικαιώματα θα τις κάνεις ένα άλλο script, και θα το τρέξεις με sudo. Τώρα εαν πρέπει να βάλεις και το password του root, δεν το έχω δοκιμάσει, νομίζω όμως ότι μπορείς να το κάνεις με heredoc. Να ξέρεις όμως ότι είναι τρύπα ασφάλειας. Εναλλακτικά μπορείς να βάλεις suid στο script που θες να τρέχει με root δικαιώματα.

    Για να κάνω append την κατάληξη .txt στο filename κάθε αρχείου πως το κάνω;
    Αυτό ειναι εύκολο.

    mv {filename} {filename}.txt
    Eαν το βάλεις σe loop
    for file in * ;do mv $file $file.txt; done


    Για το άλλο, τα πράγματα είναι πιο δύσκολα. Δεν ξέρεις εαν έχει μία ή περισσότερες τελείες το αρχείο, και θες να "κόψεις" το τέλος που έχει ".txt"

    αυτό θα το κάνεις ως εξής

    echo $file | sed -e 's/.txt$//'

    για άλλα κόλπα με τον sed (πολύ χρήσιμο μαζί και με το awk, grep)
    http://sed.sourceforge.net/sed1line.txt

  12. #102
    Εγγραφή
    05-12-2005
    Περιοχή
    ~ sweet ~
    Ηλικία
    41
    Μηνύματα
    254
    Downloads
    9
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    6243/999
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΝΙΚΑΙΑ
    Router
    Pirelli
    SNR / Attn
    8(dB) / 45(dB)
    Παράθεση Αρχικό μήνυμα από anon Εμφάνιση μηνυμάτων

    mv {filename} {filename}.txt
    Eαν το βάλεις σe loop
    for file in * ;do mv $file $file.txt; done
    Τα πράγματα πολλές φορές είναι πιο εύκολα απ' ότι τα φανταζόμαστε.

    Παράθεση Αρχικό μήνυμα από anon Εμφάνιση μηνυμάτων
    Thanks για το link.
    Desktop: Kubuntu | Server: Debian testing


  13. #103
    Εγγραφή
    20-12-2005
    Μηνύματα
    3.240
    Downloads
    4
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    49997/4997
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΞΑΝΘΗ
    Router
    Speedport W 724V
    SNR / Attn
    24,4(dB) / (dB)
    Παράθεση Αρχικό μήνυμα από dimitris_ Εμφάνιση μηνυμάτων
    Ερώτηση: Για να κάνουμε rename πολλά αρχεία πως δουλεύουμε?

    Χρησιμοποιώ το εξής
    Κώδικας:
    for file in *.txt ;do foo=`echo $file | cut -d. -f1`;mv $file $foo; done
    για να κόψω την κατάληξη .txt σε πολλά αρχεία μαζί.

    Για να κάνω append την κατάληξη .txt στο filename κάθε αρχείου πως το κάνω;
    Για το append απάντησε ο anon , εγώ ήθελα να πω κάτι άσχετο.

    το `echo $file | cut -d. -f1` θα δείξει το 1ο πεδίο χωρίζοντας με βάση την τελεία.
    Έτσι, αν έχεις αρχεία με όνομα π.χ foo-test.bar.txt το αποτέλεσμα θα είναι foo-test και
    όχι foo-test.bar που είναι το σωστό.
    Αντι για αυτό μπορείς να χρησιμοποιήσεις την basename με την μορφή:
    Κώδικας:
    for file in *.txt ;do foo=`basename $file .txt`;mv $file $foo; done

  14. #104
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490
    δεν είχα υπόψη μου την basename. Πολύ καλή ιδέα. Εγώ πάλι όλα τα περνώ απο sed ή awk ή cut
    If your tool is a hammer, every problem is a nail.

  15. #105
    Εγγραφή
    05-12-2005
    Περιοχή
    ~ sweet ~
    Ηλικία
    41
    Μηνύματα
    254
    Downloads
    9
    Uploads
    0
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    6243/999
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΝΙΚΑΙΑ
    Router
    Pirelli
    SNR / Attn
    8(dB) / 45(dB)
    Σωστός

    Το command που έδωσα έπρεπε να αναφέρω πως το χρησιμοποιώ για αρχεία που έχουν συγκεκριμένο format (ποτέ τελείες και ειδικοί χαρακτήρες) και πάντα συγκεκριμένη κατάληξη.

    Την basename την αγνοούσα.

    Thanks
    Desktop: Kubuntu | Server: Debian testing


Σελ. 7 από 149 ΠρώτηΠρώτη ... 256789121727 ... ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Βοήθεια για ένα απλό bash script
    Από AddictedToChaos στο φόρουμ Unix - Linux
    Μηνύματα: 34
    Τελευταίο Μήνυμα: 22-07-11, 01:57
  2. bash - matlab
    Από simeon.mattes στο φόρουμ Unix - Linux
    Μηνύματα: 25
    Τελευταίο Μήνυμα: 25-06-08, 23:00
  3. Bash Script help (Αρχάριος)
    Από weakwire στο φόρουμ Unix - Linux
    Μηνύματα: 12
    Τελευταίο Μήνυμα: 08-05-07, 00:41
  4. bash rename (mv)
    Από hayzel στο φόρουμ Unix - Linux
    Μηνύματα: 6
    Τελευταίο Μήνυμα: 07-01-07, 16:33

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας