[Mini Howto] Hoe kan ik .001-bestanden uitpakken onder Linux

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter

Mini-Howto: Hoe kan ik .001-bestanden uitpakken onder Linux?

Aanleiding van deze howto is dit verhaal:

http://www.binaries4all.nl/001/

Hoe moeilijk Windows users te werk moeten gaan om het een en ander voor elkaar te krijgen, hoe makkelijk hebben wij Linux users het :) De gebruikte tools in deze mini-howto zul je normaliter in elke distro tegenkomen.

We beginnen eerst eens met het maken van een test bestand om er achter te komen hoe dat splitten in zijn werk gaat.

stacheldraht@lucky-star:~$ dd if=/dev/zero of=test.bin count=1 bs=1G
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 12.3796 s, 86.7 MB/s
stacheldraht@lucky-star:~$ 


Zoals je ziet heb ik een test bestand aangemaakt met een grootte van 1.1 GB. Nu laten we eens een md5sum op dit bestand los om straks het orgineel en het copy met elkaar te vergelijken.

stacheldraht@lucky-star:~$ md5sum test.bin 
cd573cfaace07e7949bc0c46028904ff  test.bin
stacheldraht@lucky-star:~$ 


Het splitten van een bestand is absoluut geen rocket-science dat doen we gewoon met het commando split :p

stacheldraht@lucky-star:~$ split --bytes=100M test.bin --numeric-suffixes test.bin
stacheldraht@lucky-star:~$


En zie hier ik heb ons bestand netjes in stukken gehakt met een gemiddelde grootte van 100 MB.

stacheldraht@lucky-star:~$ ls -alh test.bin*
-rw-r--r-- 1 stacheldraht stacheldraht 1.0G 2009-09-01 23:01 test.bin
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin00
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin01
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin02
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin03
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin04
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin05
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin06
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin07
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin08
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin09
-rw-r--r-- 1 stacheldraht stacheldraht  24M 2009-09-01 23:06 test.bin10
stacheldraht@lucky-star:~$ 


Het orgineel willen we natuurlijk niet meer zien dus we passen een beetje globbing toe (zie man 7 glob).

stacheldraht@lucky-star:~$ ls -alh test.bin??
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin00
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin01
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin02
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin03
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin04
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin05
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin06
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin07
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin08
-rw-r--r-- 1 stacheldraht stacheldraht 100M 2009-09-01 23:06 test.bin09
-rw-r--r-- 1 stacheldraht stacheldraht  24M 2009-09-01 23:06 test.bin10
stacheldraht@lucky-star:~$ 


Om de stukken weer aan elkaar te plakken maken we gebruik van onze shell script vaardigheden. Nu zie je tevens waarom globbing erg handig is, want wat zou er gebeuren als ik dat niet zou gebruiken? ;)

stacheldraht@lucky-star:~$ for file in test.bin?? ; do cat "$file" >> test2.bin ; done
stacheldraht@lucky-star:~$


Wedden dat ons kopie (test2.bin) gelijk is aan het orgineel (test.bin)?

stacheldraht@lucky-star:~$ md5sum test.bin test2.bin
cd573cfaace07e7949bc0c46028904ff  test.bin
cd573cfaace07e7949bc0c46028904ff  test2.bin
stacheldraht@lucky-star:~$ 


Moraal van het verhaal. Als je bestanden wilt splitten en weer aan elkaar wilt plakken onder Linux gebruik dan gewoon split en cat, meer heb je echt niet nodig :)

Acties:
  • 0 Henk 'm!

  • Pim.
  • Registratie: Mei 2001
  • Laatst online: 16-08 16:15

Pim.

Aut viam inveniam, aut faciam

in NOS FAQ opgenomen

"The trouble with quotes from the Internet is that you can never know if they are genuine." - Elvis Presley | Niet met me eens ? DM ME


Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
unrar e file_naam.001


Was niet ingewikkeld genoeg?

Acties:
  • 0 Henk 'm!

  • curkey
  • Registratie: Mei 2009
  • Laatst online: 14-09 13:48
Er zijn Win32 ports van deze tools: http://unxutils.sourceforge.net/

Erg handig voor allerhande doeleinden :-)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 02 september 2009 @ 09:52:
code:
1
unrar e file_naam.001


Was niet ingewikkeld genoeg?
Het betreft hier geen rar bestanden maar bestanden die met een filesplitter zoals hjsplit gemaakt zijn en unrar kan daar niet altijd goed mee omgaan ;)

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

ahem.

cat test.bin* > file.bin

En normaal gesproken heb je je file niet al staan, want dat maakt dit nogal nutteloos :P

[ Voor 58% gewijzigd door CyBeR op 02-09-2009 10:33 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 15-09 22:42

Hero of Time

Moderator LNX

There is only one Legend

CyBeR schreef op woensdag 02 september 2009 @ 10:32:
ahem.

cat test.bin* > file.bin

En normaal gesproken heb je je file niet al staan, want dat maakt dit nogal nutteloos :P
Lijkt mij 'cat test.bin* >> file.bin'. Je schrijft anders telkens het bestand over het doelbestand, ipv het eraan toe te voegen ;).

Stacheldraht, ik zal het onthouden mocht ik een set tegen komen die geen par2 bestand oid heeft waar ik het door Quickpar kan laten fixen. Tnx voor de tip.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Yep, Hero Of Time het moet cat >> zijn ;)

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Euh, denken jullie dat ik niet weet waar ik het over heb ofzo? :P

code:
1
2
3
4
5
6
7
8
[marco@elara foo]$ echo bla > test1
[marco@elara foo]$ echo bla2 > test2
[marco@elara foo]$ echo bla3 > test3
[marco@elara foo]$ cat test* > blaat
[marco@elara foo]$ cat blaat 
bla
bla2
bla3

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • MrJay
  • Registratie: Juni 2004
  • Laatst online: 24-10-2024
Yup! Cyber zit bij het rechte eind.
De glob wordt ter plaatse ge-extend, dus eigenlijk staat er

$ cat test1 test2 test3 > blaat


Een enkele > is dus genoeg. Moest dit in een loop gebeuren, is de >> inderdaad de juiste ;-)

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Dat is valsspelen :P.

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Neobahamuth
  • Registratie: April 2003
  • Niet online

Neobahamuth

Thoughtcrime is death.

Of je gebruikt HJ-Split (337kb).

[ Voor 42% gewijzigd door Neobahamuth op 02-09-2009 18:24 ]

BBQBBQ 2OpendeurdagLED Cat Feeder


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
CyBeR schreef op woensdag 02 september 2009 @ 13:46:
Euh, denken jullie dat ik niet weet waar ik het over heb ofzo? :P
Yep ;) Neem de proef maar op de som met een md5sum als je in de onderstaande loop >> door > vervangt ;)

for file in test.bin?? ; do cat "$file" >> test2.bin ; done

Acties:
  • 0 Henk 'm!

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 09-09 23:05

smokalot

titel onder

Stacheldraht: moet je dat commando eens twee keer achter elkaar draaien, kijken wat er dan gebeurt ;-)

Het loopje is overbodig, en aangezien je de >> alleen nodig hebt in een loop (omdat er iedere keer een nieuw proces gestart wordt), is die ook overbodig.

It sounds like it could be either bad hardware or software


Acties:
  • 0 Henk 'm!

  • planB
  • Registratie: Juli 2006
  • Laatst online: 15-09 20:36
weet je dan zeker dat ze op de juiste volgorde worden geconcat?
(voor zowel met als zonder loop)

dus niet bijvoorbeeld: test.bin = test.bin01 + test.bin03 + test.bin02

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Ja omdat die * evalueert naar 01, 02 , 03 etc.

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • planB
  • Registratie: Juli 2006
  • Laatst online: 15-09 20:36
Is dat een documented feature, dat sorteren, of werkt dat gewoon toevallig altijd zo?

De bestanden kunnen nl wel in een andere volgorde in de dir geplaatst zijn als hun nummer. Dan staan ze ook niet op volgorde in de directory index.

Bij het nu getoonde voorbeeld worden alle bestanden achter elkaar aangemaakt: eerst 01, dan 02, dan 03 etc.
Bij een download kan bestand 03 er eerder zijn dan bestand 01.


Heb nog even rond gezocht: filename expansion is "sorted according to the collating sequence in effect in the current locale"

Feature dus.

[ Voor 15% gewijzigd door planB op 02-09-2009 18:38 ]


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op woensdag 02 september 2009 @ 14:34:
[...]


Yep ;) Neem de proef maar op de som met een md5sum als je in de onderstaande loop >> door > vervangt ;)

for file in test.bin?? ; do cat "$file" >> test2.bin ; done
Ja schat maar ik heb nou net die hele loop van jou eruit gedonderd ;)

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Dan wel de java versie want die werkt tenminste. Maar het kan ook mijn gebrek aan kennis geweest zijn drie jaar geleden :)

And this !! Is to go even further beyond!!!


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Voor de liefhebbers, nog een alternatief:

cat /tmp/bestand.{001.013} > /tmp/bestand.compleet.S

We are pentium of borg. Division is futile. You will be approximated.

Pagina: 1