Login Hasło

#1 2009.10.02 18:32:33

Dalik
Użytkownik
Zarejestrowany: 2008.09.07
Posty: 178
System: Debian Squeeze/Sid x86_64
Fluxbox: 1.1.1

Obsługa archiwów RAR i ZIP pod konsolą

Kolejna garść pytań początkującego usera smile

I. Jak pakować pliki w formacie RAR oraz ZIP z konsoli ?
1 - katalogi
2 - pojedyncze pliki (polecenie rar a plik_do_spakowania nie nie działa)
3 - z podziałem na części (party) (np. po 99 mb)
4 - zabezpieczone hasłem

II. jak rozpakować pliki w formacie RAR i ZIP
1 - zabezpieczone hasłem
2 - skąd wiadomo czy dane archiwum wymaga hasła
3 - rozpakowywanie kilku archiwów na raz (np. plik1.rar , muzyka.rar , obrazki.rar)
4 - rozpakowywanie do określonego folderu

Prawda jest taka ,że jedyne co potrafię to rozpakować po poszczególne archiwa RAR oraz ZIP

Kod:

unrar x spakowany_plik_lub_katalog.rar

Kod:

7z x spakowany_plik_lub_katalog.zip

Interesują mnie tylko rozwiązania uruchamiane "z palca" , ewentualnie programy w trybie tekstowym. NO GUI


Debian Linux user               
Progressive trance music fan

Offline

 

#2 2009.10.02 20:07:52

thalcave
czarny mag
Skąd: gdynia
Zarejestrowany: 2008.03.13
Posty: 63
System: Gentoo
Fluxbox: 1.3.1

Re: Obsługa archiwów RAR i ZIP pod konsolą

Nie pakuje do tych formatów, rzadko też korzystam z unzipa, ale jeśli chodzi o:

- zabezpieczone hasłem

Kod:

unrar -p"hasło" e plik.rar

Kod:

unzip -P "hasło" plik.zip

czytaj częściej manuale bo pewnie pytania o pakowanie z hasłem i na części znajdziesz odpowiedź właśnie tam.

3 - rozpakowywanie kilku archiwów na raz (np. plik1.rar , muzyka.rar , obrazki.rar)

Polecenie

Kod:

unrar e plik.rar plik2.rar

nie działa? rozwiązaniem może być skrypcik z pętlą po wszystkich danych wejściowych.


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#3 2009.10.02 20:27:15

svL
Użytkownik
Zarejestrowany: 2009.08.23
Posty: 69
System: PLD Th
Fluxbox: 1.1.1

Re: Obsługa archiwów RAR i ZIP pod konsolą

Jako, że jestem leniwy i nie chcialo mi się zapamiętywać tych wszystkich parametrów znalazłem gdzie taką funkcję do rozpakowywania:

Kod:

extract_archive () {
   local old_dirs current_dirs lower
   lower=${(L)1}
   old_dirs=( *(N/) )
   if [[ $lower == *.tar.gz || $lower == *.tgz ]]; then
        tar zxfv $1
   elif [[ $lower == *.gz ]]; then
        gunzip $1
   elif [[ $lower == *.tar.bz2 || $lower == *.tbz ]]; then
        bunzip2 -c $1 | tar xfv -
   elif [[ $lower == *.bz2 ]]; then
        bunzip2 $1
   elif [[ $lower == *.zip ]]; then
        unzip $1
   elif [[ $lower == *.rar ]]; then
        unrar e $1
   elif [[ $lower == *.tar ]]; then
        tar xfv $1
   elif [[ $lower == *.tgz ]]; then
         gunzip -d $1
   elif [[ $lower == *.tbz2 ]]; then    
         tar -jxvf $1
   elif [[ $lower == *.lha ]]; then
        lha e $1
   elif [[ $lower == *.7z ]]; then
        7z x $1
   elif [[ $lower == *.Z ]]; then
        uncompress $1
   else
        print "Unknown archive type: $1"
        return 1
  fi

do tego

Kod:

alias ex=extract_archive
compdef '_files -g "*.gz *.tgz *.bz2 *.tbz *.zip *.rar *.tar *.lha"' extract_archive

wygląda to tak:
$ ex <nazwa_pliku> i juz mam rozpakowane archwium
Do tworzenia archiwum korzystam z:#- Create archive, usage $roll 'archive-name.zip 'archive-folder'

Kod:

roll() {
        if [ -n "$1" ] ; then
            FILE=$1
            case $FILE in
                 *.tar.bz2) shift && tar cjf $FILE $* ;;
                 *.tar.gz) shift && tar czf $FILE $* ;;
                 *.tgz) shift && tar czf $FILE $* ;;
                 *.zip) shift && zip $FILE $* ;;
                 *.rar) shift && rar $FILE $* ;;
            esac
        else   
                echo "You must specify a filename."
        fi
}

tylko z tego skorzystałem może raz, jakoś nie ma potrzeby.
Jak dla mnie takie rozwiązanie jest idealne może i Tobie się przyda.
ps te wpisy należy umieścić w ~/.zshrc


"God, root, what is difference?"

Offline

 

#4 2009.10.02 20:53:43

Dalik
Użytkownik
Zarejestrowany: 2008.09.07
Posty: 178
System: Debian Squeeze/Sid x86_64
Fluxbox: 1.1.1

Re: Obsługa archiwów RAR i ZIP pod konsolą

Fajnie, dzięki.

@ thalcave

No właśnie nie działa hmm

Kod:

dalik@trance:~/downloads/mp3$ unrar e Dash_Berlin_The_New_Daylight__ARMA221__CD_2009.www.trancezone.nu.rar Ferry_Tayle_and_Manuel_Le_Saux-Roma_Airport-_CAM2009130_-WEB-2009-HW.rar 

UNRAR 3.80 beta 2 freeware      Copyright (c) 1993-2008 Alexander Roshal


Extracting from Dash_Berlin_The_New_Daylight__ARMA221__CD_2009.www.trancezone.nu.rar

No files to extract
dalik@trance:~/downloads/mp3$

@ svL
Coś z tego podpatrzę ale zastanawia mnie .zshrc. Czy tutaj jest mowa o shellu ? Używam .bash. Tam będzie tak samo ?


Debian Linux user               
Progressive trance music fan

Offline

 

#5 2009.10.02 21:27:09

thalcave
czarny mag
Skąd: gdynia
Zarejestrowany: 2008.03.13
Posty: 63
System: Gentoo
Fluxbox: 1.3.1

Re: Obsługa archiwów RAR i ZIP pod konsolą

tak funkcję tą wpisz do .bashrc lub przerób na osobny skrypt.


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#6 2009.10.02 21:39:16

Moebius
o¤°`°¤o,¸¸¸,o¤°
Skąd: /dev/tty1
Zarejestrowany: 2007.02.26
Posty: 202
System: Gentoo
Fluxbox: ist Krieg!

Re: Obsługa archiwów RAR i ZIP pod konsolą

Dalik napisał(-a):

Fajnie, dzięki.

@ thalcave

No właśnie nie działa hmm

Kod:

dalik@trance:~/downloads/mp3$ unrar e Dash_Berlin_The_New_Daylight__ARMA221__CD_2009.www.trancezone.nu.rar Ferry_Tayle_and_Manuel_Le_Saux-Roma_Airport-_CAM2009130_-WEB-2009-HW.rar 

UNRAR 3.80 beta 2 freeware      Copyright (c) 1993-2008 Alexander Roshal


Extracting from Dash_Berlin_The_New_Daylight__ARMA221__CD_2009.www.trancezone.nu.rar

No files to extract
dalik@trance:~/downloads/mp3$

Kod:

 for i in Dash_Berlin_The_New_Daylight__ARMA221__CD_2009.www.trancezone.nu.rar Ferry_Tayle_and_Manuel_Le_Saux-Roma_Airport-_CAM2009130_-WEB-2009-HW.rar ; do unrar e $i ; done

Teraz, gdy już nauczyliśmy się latać w powietrzu jak ptaki, pływać pod wodą jak ryby, brakuje nam tylko jednego: nauczyć się żyć na ziemi jak ludzie.

Offline

 

#7 2009.10.02 21:44:51

azhag
Dozorca
Skąd: Warszawa
Zarejestrowany: 2006.11.21
Posty: 819
System: Debian Testing
Fluxbox: 1.3.5
WWW

Re: Obsługa archiwów RAR i ZIP pod konsolą

Może gotowiec typu atool, unp (rozpakowanie tylko)?


Dr Chandra, will I dream?
pogoda w conky :: wybierz jabbera :: polski portal debiana :: registered linux user #403712

Offline

 

#8 2009.10.04 09:19:07

svL
Użytkownik
Zarejestrowany: 2009.08.23
Posty: 69
System: PLD Th
Fluxbox: 1.1.1

Re: Obsługa archiwów RAR i ZIP pod konsolą

Dalik tak, ja używam i polecam zsh


"God, root, what is difference?"

Offline

 

#9 2009.10.04 12:51:24

ilin
Palacz
Skąd: Siemianice
Zarejestrowany: 2008.01.02
Posty: 190
System: Debian Wheezy/Sid
Fluxbox: 1.3.5

Re: Obsługa archiwów RAR i ZIP pod konsolą

svl skorzystałem z tego pomysłu ale mam problema.
Pluje mi takimś czymś

Kod:

/home/adam/.zshrc:133: parse error near `extract_archive'

133 linia właśnie tak wygląda.

Kod:

compdef '_files -g "*.gz *.tgz *.bz2 *.tbz *.zip *.rar *.tar *.lha"' extract_archive

Offline

 

#10 2009.10.04 13:35:44

svL
Użytkownik
Zarejestrowany: 2009.08.23
Posty: 69
System: PLD Th
Fluxbox: 1.1.1

Re: Obsługa archiwów RAR i ZIP pod konsolą

ilin chyba za mało wkleiłem w poprzednim poście, spróbuj dodać tyle:

Kod:

extract_archive () {
   local old_dirs current_dirs lower
   lower=${(L)1}
   old_dirs=( *(N/) )
   if [[ $lower == *.tar.gz || $lower == *.tgz ]]; then
        tar zxfv $1
   elif [[ $lower == *.gz ]]; then
        gunzip $1
   elif [[ $lower == *.tar.bz2 || $lower == *.tbz ]]; then
        bunzip2 -c $1 | tar xfv -
   elif [[ $lower == *.bz2 ]]; then
        bunzip2 $1
   elif [[ $lower == *.zip ]]; then
        unzip $1
   elif [[ $lower == *.rar ]]; then
        unrar e $1
   elif [[ $lower == *.tar ]]; then
        tar xfv $1
   elif [[ $lower == *.tgz ]]; then
         gunzip -d $1
   elif [[ $lower == *.tbz2 ]]; then    
         tar -jxvf $1
   elif [[ $lower == *.lha ]]; then
        lha e $1
   elif [[ $lower == *.7z ]]; then
        7z x $1
   elif [[ $lower == *.Z ]]; then
        uncompress $1
   else
        print "Unknown archive type: $1"
        return 1
  fi  
# Change in to the newly created directory, and list the directory contents, if there is one.
current_dirs=( *(N/) )
for i in {1..${#current_dirs}}; do
      if [[ $current_dirs[$i] != $old_dirs[$i] ]]; then
          cd $current_dirs[$i]
            ls  
         break
     fi  
done
   }   
alias ex=extract_archive
compdef '_files -g "*.gz *.tgz *.bz2 *.tbz *.zip *.rar *.tar *.lha"' extract_archive

"God, root, what is difference?"

Offline

 

#11 2009.10.04 16:41:51

ilin
Palacz
Skąd: Siemianice
Zarejestrowany: 2008.01.02
Posty: 190
System: Debian Wheezy/Sid
Fluxbox: 1.3.5

Re: Obsługa archiwów RAR i ZIP pod konsolą

Teraz działa smile

Dzięki.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson