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

συμπίεση πολλών φακέλων αυτόματα


Γιαούρτι

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

έχω έναν φάκελο ο οποίος περιέχει αρκετούς υποφακέλους με αρχεία. ίσως είναι και 100+ (οι φάκελοι, όχι τα αρχεία)

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

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

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

το format που θέλω είναι tar. (με συμπίεση lzma κατά προτίμηση)

όλα αυτά σε lubuntu.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Δημοσ. (επεξεργασμένο)

Με μια εντολη δεν γινεται. Θα κανεις ενα sh σκριπτ με οσα λεει εδω και θα το τρεξεις στο φακελο που εχει μεσα τους φακελους που θες να συμπιεσεις
https://serverfault.com/questions/97763/linux-gzip-multiple-subdirectories-into-separate-archives

Επεξ/σία από jim_p
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Δημοσ. (επεξεργασμένο)

Κάτι τέτοιο ψάχνεις δηλαδή;

 

find . -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;

αφού έχεις κάνει cd μέσα στο parent directory

Επεξ/σία από NullScan
  • Like 2
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Στις 1/4/2019 στις 10:09 ΠΜ, NullScan είπε

Κάτι τέτοιο ψάχνεις δηλαδή;

find . -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;

αφού έχεις κάνει cd μέσα στο parent directory

ωραίος, αυτό ήθελα.

λειτουργεί λίγο περίεργα, δημιουργεί ένα μεγάλο αρχείο και μετά δημιουργούνται τα ξεχωριστά. τα συμπιέζει όλα μαζί και μετά τα χωρίζει; δε κατάλαβα τι κάνει αλλά δουλεύει.

αν ήθελα συμπίεση lzma?

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Δημοσ. (επεξεργασμένο)

Σε παρόμοια κατάσταση έφτιαξα το παρακάτω script που πέρα απο συμπίεση κάνει και encryption:

#!/bin/bash
for dir in $( ls )
do
  if [ -d $dir ]; then
    echo "Compresing "$dir
    tar cJf $dir.tar.xz $dir
    echo "Encrypting "$dir
    echo "insert_password_here" | gpg --batch -q --passphrase-fd 0 --cipher-algo AES256 -c $dir.tar.xz
    echo "Removing "$dir
    rm $dir.tar.xz
  fi
done

 

Επεξ/σία από e-tic
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Δημοσ. (επεξεργασμένο)
22 ώρες πριν, Γιαούρτι είπε

ωραίος, αυτό ήθελα.

λειτουργεί λίγο περίεργα, δημιουργεί ένα μεγάλο αρχείο και μετά δημιουργούνται τα ξεχωριστά. τα συμπιέζει όλα μαζί και μετά τα χωρίζει; δε κατάλαβα τι κάνει αλλά δουλεύει.

αν ήθελα συμπίεση lzma?

Αν θέλεις lzma τότε προσθέτεις το switch --lzma στο tar.

Όχι δεν κάνει ένα μεγάλο, παίρνει κάθε φάκελο ξεχωριστά στο directory από το οποίο τρέχες την εντολή και τον συμπιέζει με όλα του τα περιεχόμενα. Αν κατάλαβα καλά αυτό ήθελες.

 

EDIT: ξέχασα να προσθεσω το exclude του local directory, γι αυτό σου συμπιέζει και όλο το current directory μαζί με τα subfolders. Το σωστό syntax είναι έτσι

find . -maxdepth 1 -not -path '.' -type d -exec tar cjf {}.tar.bz2 {} \;
Επεξ/σία από NullScan
  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 8 μήνες μετά...
Στις 8/4/2019 στις 11:43 ΠΜ, NullScan είπε

Αν θέλεις lzma τότε προσθέτεις το switch --lzma στο tar.

Όχι δεν κάνει ένα μεγάλο, παίρνει κάθε φάκελο ξεχωριστά στο directory από το οποίο τρέχες την εντολή και τον συμπιέζει με όλα του τα περιεχόμενα. Αν κατάλαβα καλά αυτό ήθελες.

EDIT: ξέχασα να προσθεσω το exclude του local directory, γι αυτό σου συμπιέζει και όλο το current directory μαζί με τα subfolders. Το σωστό syntax είναι έτσι

find . -maxdepth 1 -not -path '.' -type d -exec tar cjf {}.tar.bz2 {} \;

επειδή με ενδιαφέρει κι εμένα το θέμα και είμαι άσχετος από linux, πως ακριβώς θα ήταν η εντολή σε αυτή την περίπτωση; με συμπίεση Lzma εννοώ.

Νομίζω αυτή είναι η καλύτερη συμπίεση σωστά;

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 2 εβδομάδες αργότερα...

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

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

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.