Este é o datapacker de comando que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
datapacker - Ferramenta para empacotar arquivos no número mínimo de caixas
SINOPSE
empacotador de dados [ -0 ] [ -a AÇÃO ] [ -b FORMATO ] [ -d ] [ -p ] [ -S TAMANHO ] -s TAMANHO ARQUIVO ...
empacotador de dados -h | --Socorro
DESCRIÇÃO
empacotador de dados é uma ferramenta para agrupar arquivos por tamanho. É projetado para agrupar arquivos de forma que eles
encher recipientes de tamanho fixo (chamados de "caixas") usando o número mínimo de recipientes. Esse
é útil, por exemplo, se você deseja arquivar uma série de arquivos em CD ou DVD, e deseja
para organizá-los de forma que você use o mínimo possível de CDs ou DVDs.
Em muitos casos, empacotador de dados é executado quase instantaneamente. De particular interesse, o
ação hardlink (veja OPÇÕES abaixo) pode ser usada para copiar dados de forma eficaz em caixas sem
ter que realmente copiar os dados.
empacotador de dados é uma ferramenta no estilo Unix tradicional; pode ser usado em tubos e chamar outros
ferramentas.
OPÇÕES
Aqui estão as opções de linha de comando que você pode definir para empacotador de dados. Por favor, note que -s e em
pelo menos um arquivo (veja a ESPECIFICAÇÃO DO ARQUIVO abaixo) é obrigatório.
-0
--nulo Ao ler uma lista de arquivos da entrada padrão (consulte a ESPECIFICAÇÃO DO ARQUIVO abaixo),
espere que a entrada seja separada por caracteres NULL (ASCII 0) em vez de um por
linha. Especialmente útil com find -imprimir0.
-a AÇÃO
--action =AÇÃO
Define qual ação tomar com as partidas. Observe que, com qualquer ação,
a saída será classificada por bandeja, com a bandeja 1 primeiro. As ações possíveis incluem:
impressão Imprima uma linha legível por humanos por arquivo. Cada linha contém o número do compartimento
(no formato fornecido por -b), um caractere de tabulação ASCII e, em seguida, o nome do arquivo.
impresso
Imprima uma linha legível semi-humana por caixa. Cada linha contém o bin
número, em seguida, uma lista de nomes de arquivos para colocar nessa caixa, com uma guia ASCII
caractere após o número do compartimento e entre cada nome de arquivo.
imprimir0 Para cada arquivo, imprima o número da bandeja (de acordo com o formato fornecido por -b),
um caractere ASCII NULL, o nome do arquivo e outro caractere ASCII NULL.
Ideal para uso com xargs -0 -L 2.
executivo:COMANDO
Para cada arquivo, execute o COMMAND especificado por meio do shell. O programa
COMMAND receberá informações em sua linha de comando, conforme indicado abaixo.
É um erro se a linha de comando gerada para um determinado compartimento for muito grande
para o sistema.
Um código de saída diferente de zero de qualquer COMMAND causará empacotador de dados terminar. Se
COMMAND contém aspas, não se esqueça de citar todo o comando, como em:
datapacker '--action = exec: echo "Bin: $ 1"; mudança; ls "$ @" '
Os argumentos para o comando fornecido serão:
· Argv [0] ($ 0 no shell) será o nome do shell usado para invocar o
comando - $ SHELL ou / bin / sh.
· Argv [1] ($ 1 no shell) será o número do compartimento, formatado de acordo com -b.
· Argv [2] e em ($ 2 e em no shell) serão os arquivos a serem colocados nesse compartimento
link físico
Para cada arquivo, crie um hardlink em caixa/nome do arquivo apontando para o original
nome do arquivo de entrada. Cria o diretório caixa como necessário. Alternativa
locais e formatos para caixa pode ser especificado com -b. Todos os diretórios bin
e todas as entradas devem residir no mesmo sistema de arquivos.
Depois de terminar de processar os resultados da lixeira, você pode excluir com segurança
as caixas sem excluir os dados originais. Alternativamente, você pode deixar o
escaninhos e exclua os dados originais. Qualquer uma das abordagens será viável.
É um erro tentar fazer um link físico entre sistemas de arquivos ou ter
dois arquivos de entrada com o mesmo nome de arquivo em caminhos diferentes. empacotador de dados precisarão
sair em qualquer uma dessas situações.
Veja também --links profundos.
ligação simbólica
Como link físico, mas em vez disso crie links simbólicos. Symlinks podem abranger sistemas de arquivos,
mas você perderá informações se remover os dados originais (pré-bin).
Como link físico, é um erro ter um único nome de arquivo ocorrendo em vários
diretórios de entrada com esta opção.
Veja também --links profundos.
-b FORMATO
--binfmt =FORMATO
Define o formato de saída para o nome da bandeja. Este formato é fornecido como uma entrada% d para
uma função que o interpreta como printf(3) faria. Isso pode ser útil para
defina o nome e a localização de seus escaninhos. Ao correr empacotador de dados com
certos argumentos, o formato bin pode ser considerado um diretório no qual os arquivos em
essa caixa está ligada. O padrão é% 03d, que produz números inteiros com
zeros para tornar todos os nomes de bin com pelo menos três caracteres de largura.
Outras variantes úteis podem incluir destdir /% d para colocar a string "destdir /" em
na frente do número do compartimento, que é renderizado sem zeros à esquerda.
-d
--depurar
Ative o modo de depuração. Isso está aqui para expansão futura e atualmente não tem
qualquer efeito.
-D
--links profundos
Quando usado com a ação symlink ou hardlink, em vez de fazer todos os links em um
único diretório simples sob o bin, imita a estrutura do diretório de origem sob o
bin. Faz mais sentido quando usado com -p, mas também poderia ser útil sem ele se
existem arquivos com o mesmo nome em diferentes diretórios de origem.
--Socorro Exibir informações breves de uso e sair.
-p
- ordem de preservação
Normalmente, empacotador de dados usa um algoritmo eficiente que tenta reorganizar arquivos como
que o número de caixas necessárias seja minimizado. Às vezes, você pode desejar
preservar a ordem dos arquivos às custas do uso potencial de mais compartimentos. No
nesses casos, você gostaria de usar esta opção.
Como um exemplo de tal situação: talvez você tenha tirado uma foto por dia para
muitos anos. Você gostaria de arquivar essas fotos em um CD, mas deseja que elas o façam
ser armazenados em ordem cronológica. Você nomeou os arquivos de forma que os nomes
indicar a ordem, para que você possa passar a lista de arquivos para empacotador de dados utilização -p preservar
o pedido em suas caixas. Assim, o bin 1 conterá os arquivos mais antigos, o bin 2 o
o segundo mais antigo e assim por diante. Se -p não foi usado, você pode usar menos CDs, mas o
as fotos seriam espalhadas por todos os CDs sem preservar sua cronologia
ordem.
-s TAMANHO
--size =TAMANHO
Dá o tamanho de cada caixa em bytes. Sufixos como "k", "m", "g", etc. podem ser
usado para indicar kilobytes, megabytes, gigabytes e assim por diante. Números como
1.5 g são válidos e, se necessário, serão arredondados para o número inteiro mais próximo possível
valor.
O tamanho da primeira caixa pode ser substituído por -S.
Aqui estão os tamanhos de algumas caixas comumente usadas. Para cada item, eu forneci a você
com a capacidade de gravação subjacente do disco e um valor sugerido para
-s. O valor sugerido para -s é menor do que a capacidade subjacente porque há
é a sobrecarga imposta pelo sistema de arquivos armazenado no disco. Você talvez encontre
que o valor sugerido para -s é inferior ao ideal para discos que contêm poucos
arquivos grandes e mais altos do que o desejado para discos que contêm grandes quantidades de pequenos
arquivos.
· CD-ROM, 74 minutos (padrão): 650m / 600m
· CD-ROM, 80 minutos: 703m / 650m
· CD-ROM, 90 minutos: 790m / 740m
· CD-ROM, 99 minutos: 870m / 820m
· DVD + -R: 4.377g / 4g
· DVD + R, camada dupla: 8.5g / 8g
-S
--size-primeiro
O tamanho do primeiro compartimento. Se não fornecido, o padrão é o valor fornecido com -s.
Isso pode ser útil se você for usar um mecanismo externo empacotador de dados adicionar
informações adicionais para o primeiro bin: talvez um índice de qual bin tem qual
arquivo, as informações necessárias para tornar um CD inicializável, etc. Você pode usar o mesmo
sufixos como com -s com esta opção.
--ordenar Classifica a lista de arquivos a serem processados antes de agir sobre eles. Quando combinado com -p,
faz com que a saída seja classificada. Esta opção não tem efeito, exceto pelo aumento da CPU
uso quando não combinado com -p.
ARQUIVO ESPECIFICAÇÃO
Após as opções, você deve fornecer um ou mais arquivos a serem considerados para embalagem nas caixas.
Alternativamente, em vez de listar os arquivos na linha de comando, você pode listar um único hífen
(-), que diz empacotador de dados para ler a lista de arquivos da entrada padrão (stdin).
empacotador de dados nunca recursa em subdiretórios. Se você quiser uma pesquisa recursiva - encontrar
todos os arquivos em um determinado diretório e todos os seus subdiretórios - veja o segundo exemplo no
Seção EXEMPLOS abaixo. empacotador de dados é projetado para se integrar com find(1) neste
situação para permitir que você aproveite a poderosa recursão e filtragem incorporadas do find
características.
Ao ler arquivos de entrada padrão, assume-se que a lista contém um arquivo distinto
nome do arquivo por linha. Veteranos experientes do POSIX reconhecerão as limitações inerentes em
este formato. Por esse motivo, quando dado -0 em conjunto com o arquivo único -,
empacotador de dados irá esperar, na entrada padrão, uma lista de arquivos, cada um terminado por
um caractere ASCII NULL. Essa lista pode ser facilmente gerada com find(1) usando seu
-imprimir0 opção.
EXEMPLOS
· Coloque todas as imagens JPEG em ~ / Imagens em caixas (usando hardlinks) sob o pré-existente
anuário ~ / bins, não mais do que 600 MB por compartimento:
empacotador de dados -b ~ / bins /% 03d -s 600m -a hardlink ~ / Imagens /* .jpg
· Coloque todos os arquivos em ~ / Imagens ou qualquer subdiretório dele em caixas de 600 MB sob ~ / bins,
usando hardlinking. Este é um exemplo simples a seguir se você simplesmente deseja um recursivo
pesquisa de todos os arquivos.
find ~ / Imagens -tipo f -print0 |
empacotador de dados -0 -b ~ / bins /% 03d -s 600m -a hardlink -
· Encontre todas as imagens JPEG em ~ / Imagens ou qualquer subdiretório dele, coloque-os em caixas
(usando hardlinks) no diretório pré-existente ~ / bins, não mais do que 600 MB por compartimento:
find ~ / Imagens -name "*.jpg" carregando = "preguiçoso" -print0 |
empacotador de dados -0 -b ~ / bins /% 03d -s 600m -a hardlink -
· Encontre todas as imagens JPEG como acima, coloque-as em caixas de 4 GB, mas em vez de colocá-las
em qualquer lugar, calcule o tamanho de cada compartimento e exiba-o.
find ~ / Imagens -name "*.jpg" carregando = "preguiçoso" -print0 |
empacotador de dados -0 -b ~ / bins /%03d -s 4g
'--action=exec:echo -n "$1: "; mudança; du -ch "$@" | greptotal'
-
Isso exibirá a saída como esta:
/ home / jgoerzen / bins / 001: 4.0 G no total
/ home / jgoerzen / bins / 002: 4.0 G no total
/ home / jgoerzen / bins / 003: 4.0 G no total
/ home / jgoerzen / bins / 004: 992 milhões no total
Nota: o padrão grep neste exemplo é simples, mas causará resultados inesperados se
qualquer arquivo correspondente contém a palavra "total".
· Encontre todas as imagens JPEG como acima e gere imagens ISO de 600 MB delas em ~ / bins. Esta
irá gerar as imagens ISO diretamente, sem nunca vincular os arquivos ao ~ / bins.
find ~ / Imagens -name "*.jpg" carregando = "preguiçoso" -print0 |
empacotador de dados -0 -b ~ / bins /%03d.iso -s 4g
'--action=exec:BIN="$1"; mudança; mkisofs -r -J -o "$BIN" "$@"'
-
Você pode, se desejar, canalizar esse resultado diretamente para um aplicativo de gravação de DVD.
Ou você pode usar o growisofs para gravar um DVD + R em uma única etapa.
ERROS
É um erro se qualquer arquivo especificado exceder o valor fornecido com -s ou -S.
Também é um erro se algum arquivo especificado desaparecer enquanto empacotador de dados está correndo.
Use datapacker online usando serviços onworks.net