Προς το περιεχόμενο

[INFO] Η δύναμη της Κονσόλας


Manos-Sx

Προτεινόμενες αναρτήσεις

  • Απαντ. 889
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

>if [ $yn = y ] ; then
                   for k in $(find $1 -name *.jpg); do convert $k -resize $WIDTH $k; done
           for k in $(find $1 -name *.JPG); do convert $k -resize $WIDTH $k; done
                   clear
                   echo "Successful recursive conversion:.JPG,.jpg,800px width"
       else
                   for k in $(ls $1 | grep .JPG); do convert $1$k -resize $WIDTH  $1$k; done
                   for k in $(ls $1 | grep .jpg); do convert $1$k -resize $WIDTH  $1$k; done
                   clear
                   echo "Successful non-recursive convertion:.JPG,.jpg,800px width"
       fi

αυτό εννοούσα βασικά. Αφού και στις δύο περιπτώσεις του if είναι κοινό γιατί δεν το βγάζει απέξω.

το σκεφτηκα να καταχωρει στο DEF_DIR το ορισμα ελενχοντας με ενα if αν υπαρχει κι ετσι να καταργηθει το δευτερο if

ειδωμεν

 

poscaman

τι εξασφαλίζουν οι επαναλείψεις ?

δηλαδή , δεν φτάνει μία πρόταση με την εντολή ?

.

αν καταλαβα τι εννοεις,το εκανα για να περιλαβω ολα τα αρχεια jpg ανεξαρτητα απο το αν εχουν καταληξη σε πεζα/κεφαλαια.βεβαια το πιο σωστο ειναι αυτο:

poscaman: Αν όπου `find -name' βάλεις `find -iname', και αντί για `grep', `grep -i', γλιτώνεις τον έλεγχο κεφαλαίων - πεζών ;-)

 

ευχαριστω πολυ apoikos για την διορθωση και τα παιδια για τα σχολια.

 

 

καθε φορα που κατι θελω να κανω σε αυτο το τρελιαρικο λειτουργικο και δεν ξερω πως,ψαχνω και συνηθως βρισκω τη λυση.ακομα βεβαια δεν εχω "χωνεψει" οτι μπορει να κανει ΟΤΙΔΗΠΟΤΕ θελω κι οτι αν δεν το βρω δεν εχω ψαξει αρκετα.Ομολογω βεβαια οτι πολλες φορες δε φανταζομαι οτι υπαρχει αυτο που ζηταω γι αυτο και δεν μπαινω στον κοπο να ψαξω.Λαθος μου.Κι οσο περναει ο καιρος απεχθανομαι και πιο πολυ το υδροκεφαλο λειτουργικο που λεγεται win.σορρυ για τις φιλοσοφιες,αλλα δε μπορω,αν δεν τις πω θα σκασω

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 4 εβδομάδες αργότερα...

@poscaman: μια πιο compact έκδοση. Κι εγώ αρχάριος είμαι, απλά είπα να βάλω και μερικά "περίεργα" που έμαθα πρόσφατα, μερικά μάλιστα τα έβαλα χωρίς να είναι απαραίτητα, απλά για να ...μας κράξουν οι πιο έμπειροι σε πιθανά λάθη και να μαθαίνουμε σιγά σιγά!

 

>
#!/bin/bash
#Image Width Converter

# clear;
DIR="$1"
if [ -z $DIR ] ; then
DIR="/home/dimitris/Desktop/temp/anag_temp"
echo "Directory: $DIR"
fi
echo "Convert recurcively (y/n)?"
read yn
[ $yn != y ] && DEPTH="-maxdepth 1"
find $DIR $DEPTH -iname '*.jpg' -print0 | xargs -0 -I '\1' convert '\1' -resize 800 '\1'

# clear
echo "Successful recursive conversion:.JPG,.jpg,800px width"

 

Αντί της ls έβαλα την παράμετρο -maxdepth 1 της find, οπότε αρκεί μία μόνο εντολή.

Για να δουλεύει και με κενά στα ονόματα αρχείων ή φακέλων έβαλα find -print0 και αντίστοιχα xargs -0.

Και είπα να χρησιμοποιήσω και τα [ expressions ] με λίγο πιο ...προχωρημένο τρόπο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@poscaman: μια πιο compact έκδοση. Κι εγώ αρχάριος είμαι, απλά είπα να βάλω και μερικά "περίεργα" που έμαθα πρόσφατα, μερικά μάλιστα τα έβαλα χωρίς να είναι απαραίτητα, απλά για να ...μας κράξουν οι πιο έμπειροι σε πιθανά λάθη και να μαθαίνουμε σιγά σιγά!

 

>
#!/bin/bash
#Image Width Converter

# clear;
DIR="$1"
if [ -z $DIR ] ; then
   DIR="/home/dimitris/Desktop/temp/anag_temp"
   echo "Directory: $DIR"
fi
echo "Convert recurcively (y/n)?"
read yn
[ $yn != y ] && DEPTH="-maxdepth 1"
find $DIR $DEPTH -iname '*.jpg' -print0 | xargs -0 -I '\1' convert '\1' -resize 800 '\1'

# clear
echo "Successful recursive conversion:.JPG,.jpg,800px width"

Αντί της ls έβαλα την παράμετρο -maxdepth 1 της find, οπότε αρκεί μία μόνο εντολή.

Για να δουλεύει και με κενά στα ονόματα αρχείων ή φακέλων έβαλα find -print0 και αντίστοιχα xargs -0.

Και είπα να χρησιμοποιήσω και τα [ expressions ] με λίγο πιο ...προχωρημένο τρόπο.

 

Μια μικρή "βελτίωση". Αντί για απόλυτο path βάλτε το id -un (ή whoami) στο τμήμα

 

DIR="/home/dimitris/Desktop/temp/anag_temp"

 

Δηλαδή

 

DIR="/home/`id -un`/Desktop/temp/anag_temp"

 

ευχαριστω πολυ για τις επισημανσεις.θα τις μελετησω διεξοδικα οταν βρω χρονο.

 

να ρωτησω και κατι.ειναι λιγο φιλοσοφικης φυσης.οκ,αποφασισα οτι θελω να μαθω bash scripting,κι επισης ξερω οτι πολλα πραγματα μπορουν να γινουν με ενα script.το θεμα ειναι οτι δεν εχω κατι που να με κανει να κατσω να φτιαξω script.εχω φτιαξει 3-4,απλοϊκα scripts για 2-3 δουλειες που μου φανηκαν χρησιμα,απο κει και περα ομως τι;;;

 

προσπαθω να βρω ενα κινητρο,αλλα δεν το βρισκω..δεν ξερω αν γινομαι κατανοητος....

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν θες ιδέες για πράγματα που μου φαίνονται εμένα χρήσιμα (διαχείριση χρηστών σε περιβάλλον εργαστηρίου), μπορώ να σου προτείνω μπόλικα (και να βοηθήσω για τη δημιουργία τους)! Π.χ. δημιουργία ενός script που να αντιγράφει ένα φάκελο στα έγγραφα όλων των χρηστών, ή να τους αλλάζει ταπετσαρία ή την αρχική σελίδα του firefox. Είναι πιο δύσκολο απ' ότι ακούγεται, γιατί ο home κατάλογος των χρηστών δεν είναι απαραίτητα κάτω από το /home, μπορεί να είναι κάτω από το /home/groupname, θα πρέπει να παρθεί η πληροφορία από το /etc/passwd. Και τα έγγραφα μπορεί να είναι "Documents" ή "Έγγραφα" κτλ, θα πρέπει να διαβαστεί το αρχείο ~/.config/user-dirs.dirs του κάθε χρήστη.

 

Αν θες απλά τρόπο να "πιεστείς", σταμάτα τη χρήση file manager και χρησιμοποίησε κονσόλα. Π.χ. πώς θα δεις τα 5 μεγαλύτερα αρχεία ή το μέγεθος ενός φακέλου ή θα αλλάξεις την κωδικοποίηση ενός αρχείου ή θα δεις τα id3 tags των mp3 σου από κονσόλα;

 

Και φυσικά μπορείς απλά να περιμένεις μέχρι να σου έρχεται η αντίστοιχη ανάγκη, όπως σου ήρθε αυτή με τις φωτογραφίες...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ευχαριστω πολυ για τις επισημανσεις.θα τις μελετησω διεξοδικα οταν βρω χρονο.

 

να ρωτησω και κατι.ειναι λιγο φιλοσοφικης φυσης.οκ,αποφασισα οτι θελω να μαθω bash scripting,κι επισης ξερω οτι πολλα πραγματα μπορουν να γινουν με ενα script.το θεμα ειναι οτι δεν εχω κατι που να με κανει να κατσω να φτιαξω script.εχω φτιαξει 3-4,απλοϊκα scripts για 2-3 δουλειες που μου φανηκαν χρησιμα,απο κει και περα ομως τι;;;

 

προσπαθω να βρω ενα κινητρο,αλλα δεν το βρισκω..δεν ξερω αν γινομαι κατανοητος....

 

Η αν μαντεύω καλά, υπομονή δυο εξάμηνα. Στο 6ο μαθαίνεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Χρειάστηκα να μετονομάσω κάτι φωτογραφίες του στυλ

"Φωτογραφία διακοπών 001.jpg", "Φωτογραφία διακοπών 002.jpg", ...

σε

"IMG_1234.JPG", "IMG_1235.JPG", ...

 

Με τα πολλά κατέληξα στο παρακάτω, το αναρτώ είτε για ενημέρωση είτε για κριτική:

>
find . -maxdepth 1 -iname '*.jpg'|(i=1234; while read k; do echo mv \"$k\" \"IMG_$i.JPG\" && i=$((i+1)); done;)

 

Εννοείται χωρίς το echo, το έβαλα για να δείχνει την εντολή της μετονομασίας χωρίς να την εκτελεί πραγματικά.

 

Καλησπέρα gtroza!

 

.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...