συμπίεση φακέλου με το 7z αγνοώντας κάποιο τύπο αρχείων

Giorgos Keramidas keramida at ceid.upatras.gr
Mon Mar 17 23:02:48 EET 2008


On 2008-03-17 22:25, Thanos <pampo at freemail.gr> wrote:
> On 2008-03-17 21:55, Nick Demou wrote:
> > 2008/3/17 Thanos <pampo at freemail.gr>:
> >> Χαίρετε...
> >>
> >>  Προσπαθώ να συμπιέσω τα περιεχόμενα ενός φακέλου με το 7-Zip αγνοώντας
> >>  τα ήδη 7z αρχεία που υπάρχουν στον φάκελο αυτό.
> >>
> >>  Έχω δηλαδή τον φάκελο 'foo' ο οποίος μέσα έχει και κάποια '7z' αρχεία.
> >>  Αν καταλαβαίνω σωστά, σύμφωνα με το man του θα πρέπει να χρησιμοποιήσω
> >>  το -ax[r[-|0]]{@listfile|!wildcard} switch.
> >>
> >>  Είμαι λοιπόν ένα επίπεδο πάνω από τον foo και δίνω:
> >>
> >>         7z a -r foo.7z foo -ax!*.7z
> >
> > αχ αυτό το bash preprocessing πόσους θα βασανίσει:
> > επειδή την παραπάνω εντολή την δίνεις μάλλον απο bash shell τότε
> > πρόσεξε γιατί το !* το διαβάζει το shell το αντικαθηστά με κάτι άλλο
> > (γιατί το ! είναι special character για το bash) και μετά το περνά στο
> > 7z. Δοκίμασε -ax\!*.7z
>
> Ναι σε bash shell το τρέχω, όμως η πρότασή σου δεν βοήθησε. Το
> αποτέλεσμα είναι το ίδιο, μέσα στο τελικό 7z αρχείο υπάρχουν και τα 7z
> που δεν θέλω και περιέχονται στο φάκελο foo.
>
> Έμαθα και κάτι... Το ! είναι special character στο bash... :-)

Δεν είμαι σίγουρος ακόμα πως δουλεύει το -ax!wildcard option, αλλά
μάλλον αυτό που θέλεις είναι το -xr κι όχι το -ax:

% keramida at kobe:/ws/bsd/doc$ find en_US.ISO8859-1 -name '*.7z'
% en_US.ISO8859-1/articles.7z
%
% keramida at kobe:/ws/bsd/doc$ 7z a -r -xr'!*.7z' en_US.ISO8859-1.7z en_US.ISO8859-1
% [...]
%
% keramida at kobe:/ws/bsd/doc$ 7z t en_US.ISO8859-1.7z | fgrep 7z
% p7zip Version 4.57 (locale=el_GR.ISO8859-7,Utf16=on,HugeFiles=on,2 CPUs)
% Processing archive: en_US.ISO8859-1.7z
%
% keramida at kobe:/ws/bsd/doc$

Άθλιο command line UI το p7zip πάντως :P




More information about the Linux-greek-users mailing list