Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej, mam taki problem.. Posiadam jakieś archiwum z backupem w formacie .tar o rozmiarze 37GB
Ze względu na rozmiar nie mogę wejść do tego archiwum za pomocą np. mc i skopiować sobie konkretnego pliku, który z tego archiwum mnie interesuje.. Nie mogę też rozpakować całego archiwum ze względu na brak miejsca na dysku..
Czy istnieje jakaś metoda aby wypakować konkretny plik z archiwum tylko jeśli znam jego ścieżkę w spakowanym pliku?
przykład:
archiwum.tar
w nim ->/dupa/pliki/moja_dziewczyna_xxx.avi
a poza tym setki innych filmów..
Jak wydobyć ten jeden plik?
Pozdrowienia
Offline
podac w linii polecen sciezke (ta w archiwum) pliku ktory ma byc rozpakowany
Offline
tar xf archiwum.tar dupa/pliki/moja_dziewczyna_xxx.avi
a co jest na tym filmie?
Offline
Tylko weź poprawkę na to że tar będzie rozpakowywał archiwum do tempa tak długo dopóki nie trafi na plik z filmem. Czyli w najbardziej pesymistycznym wariancie może się okazać że mimo iż nie chcesz to i tak rozpakujesz całe archiwum ;]
Offline
[quote=sal_i]
tar xf archiwum.tar dupa/pliki/moja_dziewczyna_xxx.avi
a co jest na tym filmie?[/quote]
chciałem Was zainteresować tematem ;p
Offline
-n, --seek archiwum o swobodnym dostępie
tak btw:
pytanie takie: co to robi? ;>
Offline
@winnetou pewny jestes tego ... nie sprawdzalem ale widze powodu aby mial tak robic ...
Offline
Na 95%. Potestuję sobie i podzielę się wynikami.
OK testy przeprowadzone. Pomyliłem się ale tylko w jednym miejscu :) Tar rozpakuje wszystko do napotkanego pliku ale nie do tempa tylko do bieżącej ścieżki :)
#!/bin/bash echo "create test data..." for NR in `seq 1 50` do dd if=/dev/urandom of=$1/file_$NR bs=1024 count=2048 2>&1 >>/dev/null echo "create test data..." clear done echo "/tmp content:" ls -l /tmp echo "file created" echo "now commpressing files" tar cpjf $2 $1 echo "archive created" echo -e "which file umpack? (number between 1 and 50): " read FN echo "uncompressing selected file" tar jxf $2 $1file_$FN echo "done" echo "/tmp content:" ls -l /tmp
Mały pseudo skrypt do testowania. Odpalamy go poleceniem:
./skrypt SCIEZKA_CO_SPAKOWAC ARCHIWUM.TAR.BZ2
Zresztą potestujecie sami :)
Ostatnio edytowany przez winnetou (2010-03-16 01:08:02)
Offline
sprawdzilem ten skrypt i wypadkowal tylko wskazany plik ... rowniez w trakcie rozpakowywania ani w katalogu ktory tworzyl (sciezka wypakowywanego pliku) ani w /tmp ani w $PWD ... jaki tar i w ktorym momecie widzisz te pliki?
Offline
Dziwne, mi wypakował we wskazane miejsce wszystko do wybranego pliku, a za drugim razem już się skrypt sypnął :) Może mam coś namieszane w systemie. Ale skoro działa to przyznaje się do nieświadomego wprowadzania w błąd ;)
Offline
Time (s) | Query |
---|---|
0.00014 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00100 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.147.86.246' WHERE u.id=1 |
0.00063 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.147.86.246', 1733340429) |
0.00057 | SELECT * FROM punbb_online WHERE logged<1733340129 |
0.00055 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=16358 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00202 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=16358 ORDER BY p.id LIMIT 0,25 |
0.00081 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=16358 |
Total query time: 0.00583 s |