GNU/Linux >> Linux Esercitazione >  >> Linux

Esiste un tar o cpio più intelligente là fuori per recuperare in modo efficiente un file archiviato nell'archivio?

Soluzione 1:

tar (e cpio e afio e pax e programmi simili) sono formati orientati allo stream - sono pensati per essere trasmessi direttamente su un nastro o convogliati in un altro processo. mentre, in teoria, sarebbe possibile aggiungere un indice alla fine del file/stream, non conosco nessuna versione che lo faccia (sarebbe comunque un miglioramento utile)

non aiuterà con i tuoi archivi tar o cpio esistenti, ma c'è un altro strumento, dar ("archivio disco"), che crea file di archivio che contengono un tale indice e può darti un rapido accesso diretto ai singoli file all'interno dell'archivio .

se dar non è incluso nel tuo unix/linux-dist, puoi trovarlo in:

http://dar.linux.free.fr/

Soluzione 2:

Potresti usare SquashFS per tali archivi. Lo è

  • progettato per essere accessibile utilizzando un fuse driver (sebbene esista un'interfaccia tradizionale)
  • compresso (maggiore è la dimensione del blocco, maggiore è l'efficienza)
  • incluso nel kernel Linux
  • memorizza UID/GID e ora di creazione
  • consapevolezza dell'endianess, quindi abbastanza portabile

L'unico inconveniente che conosco è che è di sola lettura.

http://squashfs.sourceforge.net/http://www.tldp.org/HOWTO/SquashFS-HOWTO/whatis.html

Soluzione 3:

Sebbene non memorizzi un indice, star si presume sia più veloce di tar . Inoltre supporta nomi file più lunghi e ha un supporto migliore per gli attributi dei file.

Come sicuramente saprai, la decompressione del file richiede tempo e probabilmente inciderebbe sulla velocità di estrazione anche se fosse presente un indice.

Modifica: Potresti anche dare un'occhiata a xar . Ha un'intestazione XML che contiene informazioni sui file nell'archivio.

Dalla pagina di riferimento:

L'intestazione XML di Xar gli consente di contenere metadati arbitrari sui file contenuti nell'archivio. Oltre ai metadati del file unix standard come la dimensione del file e i suoi tempi di modifica e creazione, xar può memorizzare informazioni come bit di file ext2fs e hfs, flag unix, riferimenti ad attributi estesi, informazioni su Mac OS X Finder, Mac OS X resource fork e hash dei dati del file.

Soluzione 4:

Thorbjørn Ravn Anderser ha ragione. GNU tar crea archivi "ricercabili" per impostazione predefinita. Ma non usa queste informazioni quando legge questi archivi se l'opzione -n ​​non è data. Con l'opzione -n ​​ho appena estratto il file da 7 GB dall'archivio da 300 GB nel tempo necessario per leggere/scrivere 7 GB. Senza -n ci sono voluti più di un'ora e non ha prodotto alcun risultato.

Non sono sicuro di come la compressione influisca su questo. Il mio archivio non è stato compresso. Gli archivi compressi non sono "ricercabili" perché l'attuale tar GNU (1.26) scarica la compressione su un programma esterno.

Soluzione 5:

L'unico formato di archivio che conosco che memorizza un indice è ZIP, perché ho dovuto ricostruire indici danneggiati più di una volta.


Linux
  1. Esegui il comando per ogni file nella directory corrente

  2. Come posso specificare il file chiave per sshfs?

  3. Estrai tar l'errore del file tar.bz2

  4. Qual è l'equivalente del comando File Linux per Windows?

  5. Annullare l'archiviazione riducendo le dimensioni dell'archivio?

dtrx – L'estrattore di archivi universale per molti tipi di archivi

Come visualizzare il contenuto di un archivio o di un file compresso in Linux

Scegli il miglior file system per il tuo Linux

Le 8 distribuzioni Linux più popolari disponibili là fuori

I 15 migliori software di condivisione file per desktop Linux

Aggiunta di file ai file tbz