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

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


Manos-Sx

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

  • 2 εβδομάδες αργότερα...
  • Απαντ. 889
  • Δημ.
  • Τελ. απάντηση

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

Usage: backup.sh -i cli|dialog -d path [-f name] [-c gzip|bzip2|xz|none] [-E openssl|gpg -P passphrase] [-u "option1 option2..."] [-h|-hn] [-NqvgHrsoD]

 

Θελω να πω οτι:

 

τα main arguments ειναι το -i που δεχεται cli ή dialog και το -d που δεχεται path

optional ειναι:

το -f που δεχεται name

το -c με gzip ή bzip2 ή xz ή none

το -E με openssl ή gpg και πρεπει να συνοδευεται απο το -P με passphrase

το -u που παιρνει διαφορα options κλεισμενα με quotes (πχ "--acls --xattrs")

το -h ή το -hn (το -n πρεπει να συνοδευεται με -h)

και τα -NqvgHrsoD ανεξαρτητα.

 

Σωστη ειναι η συνταξη ή σαν τα μουτρα μου? :P

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

Να σου απαντήσω εγώ; Νομίζω έχεις ήδη /etc/star.conf έτσι; Δε χρειάζεται να απαιτείς args παρα μόνο να έχεις default ρυθμίσεις στο αρχείο .conf όταν εγκαθίσταται η εφαρμογή κ να λές πάτε κ πειράξτε εκει ότι θέλετε. Αυτο που μπορείς να κάνεις είναι να ανιχνεύεις αν ο χρήστης είναι σε Xorg και να ξεκινάς το εκάστοτε interface μόνος σου, αν έχεις όρεξη. Έπομένως κάποιος θα δίνει backup.sh και θα γίνονται όλα αυτόματα :devil: .

Μη με βρίσεις, είπα αν έχεις όρεξη

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

ναι υπαρχει /etc/backup.conf αλλα δεν ειναι το θεμα μου εκει, ειναι καθαρα αισθητικο για την help page.

δεν χρειαζεται X το script (εκτος αν καποιος τελειωσει τον wrapper :P)
 
λεω αντι Usage: backup.sh [options] να εβαζα κατι πιο αναλυτικο.

καθαρα για αναγνωση δηλαδη.

 

ουτως η αλλως τα arguments και το /etc/backup.conf δεν ειναι απαραιτητα, υπαρχουν interfaces.

 

 

Έπομένως κάποιος θα δίνει backup.sh και θα γίνονται όλα αυτόματα

 

γινεται ηδη, με την χρηση του conf :P

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

 

εκτος αν καποιος τελειωσει τον wrapper

Να τελειώσει τι; :P

 

Επίσης, δεν σε προλαβαίνω ρε φίλε. Με τέτοιο οργασμό development πως να σε ακολουθήσω;

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

Με τέτοιο οργασμό development

 

τι ειπε το ατομο :-D

 

σιγα, τα arguments σταθερα ειναι. τωρα αν προστιθεται κατι που και που ε... :P

 

τελευταια κωδικα καθαριζω συνηθως

 

οκ, δικιο εχεις παντως. :-)

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

  • 2 εβδομάδες αργότερα...
$ ls --help

[...]
   --group-directories-first
                             group directories before files;

Υπάρχει τρόπος να βάζει τα symbolic links μαζί με τα directories στην αρχή του output; Χρησιμοποιώ zsh αν πάιζει κάποιο ρόλο, αν και νομίζω ότι η ls ορίζεται στο GNU coreutils

 

edit

Βασικά αν δώσω --dereference το κάνει group με τα άλλα directories, αλλά δεν το δείχνει ποια σαν symbolic link. Any ideas?

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

$ ls --help

[...]
   --group-directories-first
                             group directories before files;

Υπάρχει τρόπος να βάζει τα symbolic links μαζί με τα directories στην αρχή του output; Χρησιμοποιώ zsh αν πάιζει κάποιο ρόλο, αν και νομίζω ότι η ls ορίζεται στο GNU coreutils

 

edit

Βασικά αν δώσω --dereference το κάνει group με τα άλλα directories, αλλά δεν το δείχνει ποια σαν symbolic link. Any ideas?

 

http://unix.stackexchange.com/questions/111637/ls-l-group-directories-first-act-on-symlinks-as-well

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

mll() {
  (($#)) || set -- *(N-/) *(N^-/)
  (($#)) && ls -ldU -- $@
}
Καλή μαγκιά.

 

Επιβεβαιώνεται για άλλη μία φορά πως στο ZSH, στο Vim, και στην Perl μπορείς να κάνεις τα πάντα. Απλά, όπως και στο παραπάνω, μερικές φορές από θέμα readibility η εντολή μοιάζει με κρυπτογραφημένα δεδομένα :)

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

  • 1 μήνα μετά...

Εχουμε:

test/
└── mpe
    ├── dir
    ├── file
    ├── .hidden-dir
    │   └── eee
    └── .hidden-file

Θελω με την tar να παρω μονο τα κρυφα αρχεια και φακελους με τα περιεχομενα αυτων:

tar cvf /dev/null --exclude=test/mpe/[^.]* test
test/
test/mpe/
test/mpe/.hidden-file
test/mpe/.hidden-dir/
test/mpe/.hidden-dir/eee

Ωραια. 
 
Αν ομως δωσω:

tar cvf /dev/null --exclude=test/*/[^.]* test
test/
test/mpe/
test/mpe/.hidden-file
test/mpe/.hidden-dir/

Γιατι αν αντι για mpe βαλω * δεν παιρνει τα περιεχομενα του .hidden-dir? :blink: 

H rsync δουλευει σωστα και στις δυο περιπτωσεις:

rsync -av test /tmp --exclude=test/mpe/[^.]* --dry-run
sending incremental file list
test/
test/mpe/
test/mpe/.hidden-file
test/mpe/.hidden-dir/
test/mpe/.hidden-dir/eee

rsync -av test /tmp --exclude=test/*/[^.]* --dry-run
sending incremental file list
test/
test/mpe/
test/mpe/.hidden-file
test/mpe/.hidden-dir/
test/mpe/.hidden-dir/eee

EDIT

αν με στον .hidden-dir βαλω ενα κρυφο αρχειο .ee, αυτο το παιρνει αλλα εξακολουθει να μην παιρνει το κανονικο eee.

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

Εχουμε:

test/
└── mpe
    ├── dir
    ├── file
    ├── .hidden-dir
    │   └── eee
    └── .hidden-file
Θελω με την tar να παρω μονο τα κρυφα αρχεια και φακελους με τα περιεχομενα αυτων:

tar cvf /dev/null --exclude=test/mpe/[^.]* test
test/
test/mpe/
test/mpe/.hidden-file
test/mpe/.hidden-dir/
test/mpe/.hidden-dir/eee
Ωραια.

 

Εδώ του λες να παραλείψει όλα τα αρχεία μέσα στον κατάλογο mpe που δεν ξεκινούν από τελεία. Το eee δεν είναι μέσα στον mpe αλλά μέσα στον .hidden-dir οπότε δεν γίνεται match και έτσι περιλαμβάνεται κανονικά στο tar.

 

Αν ομως δωσω:

tar cvf /dev/null --exclude=test/*/[^.]* test
test/
test/mpe/
test/mpe/.hidden-file
test/mpe/.hidden-dir/
Γιατι αν αντι για mpe βαλω * δεν παιρνει τα περιεχομενα του .hidden-dir? :blink:

 

Εδώ του λες να παραλείψει τα αρχεία που δεν ξεκινούν από τελεία και που βρίσκονται σε _όλους_ τους καταλόγους οπότε το eee γίνεται match και παραλείπεται.

 

H rsync δουλευει σωστα και στις δυο περιπτωσεις:

Η rsync παίζει σωστά γιατί υλοποιεί και το * και το ** οπότε το pattern που δίνεις κόβει μόνο ένα βάθος καταλόγων και όχι όλα τα βάθη. Δοκίμασε να τρέξεις την rsync με ** και θα δεις ότι θα συμπεριφερθεί με τον ίδιο τρόπο με την tar.
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εδώ του λες να παραλείψει τα αρχεία που δεν ξεκινούν από τελεία και που βρίσκονται σε _όλους_ τους καταλόγους οπότε το eee γίνεται match και παραλείπεται.

 

wtf, νομιζα οτι το /*/ περιοριζεται στο συγκεκριμενο μερος του path που το βαζω...

 

οποτε να φανταστω ειναι normal συμπεριφορα.

 

Ευχαριστω!

 

Και αν εχω πολλους φακελους στον test, δεν γινεται με pattern την tar?

 

Δηλαδη θελω να του πω:

 

Σε ολους τους φακελους κατω απο τον test κρατα μονο τα κρυφα αρχεια και dirs με τα περιεχομενα τους.

 

Ξερω οτι γινεται με την find αλλα ελεγα μηπως παιξει κανα pattern.

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

wtf, νομιζα οτι το /*/ περιοριζεται στο συγκεκριμενο μερος του path που το βαζω...

 

Και αν εχω πολλους φακελους στον test, δεν γινεται με pattern την tar?

 

Ξερω οτι γινεται με την find αλλα ελεγα μηπως παιξει κανα pattern.

Αν σε ενδιαφέρει να κόψεις μόνο την πρώτη βαθμίδα βάθους (και αν μιλάμε για gnu tar), μπορείς να πεις στο tar ότι θέλεις το * να συμπεριφέρεται ως * και όχι ως ** χρησιμοποιώντας την παρακάτω παράμετρο:

 

% tar cvf /dev/null --no-wildcards-match-slash --exclude='test/*/[^.]*' test
test/
test/mpe/
test/mpe/.hidden-dir/
test/mpe/.hidden-dir/eee
test/mpe/.hidden-file
Και πάλι όμως δεν είναι και τόσο foolproof. Αν αλλάξει κάτι από τον συνδυασμό tree και exclude pattern έστω και λίγο, expect dragons.

 

Επίσης στα exclude σου πάντα να βάζεις ' ' (μονά) ώστε να είσαι σίγουρος ότι η tar βλέπει το pattern που γράφεις και όταν έχεις καταλόγους το dir1/dir2 είναι διαφορετικό από το dir1/dir2/ (όπως και στην rsync αυτό) οπότε πρόσεχε για τελικά /

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

Εμένα πάντως μου αρέσει να διαβάζω documentation, στα περισσότερα προγράμματα αν όχι όλα, τα official docs αρκούν και περισσεύουν!

 

Thank God docs

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

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...