As opções que os comandos BusyBox
têm dependem muito das opções com as quais o BusyBox
é compilado. BusyBox
pretende ser altamente configurável para que versões reduzidas muito pequenas possam ser compiladas para sistemas onde os recursos são muito limitados. Versões maiores e mais completas podem ser construídas onde isso não é um problema.
No seu caso, cpio
precisa da opção -p
ou --pass-through
(formulário longo) ativada. Normalmente, o cpio
se comporta mais como um utilitário de arquivamento como tar
, mas também tem uma função extra que permite copiar arquivos. Para ativar isso em BusyBox
, ele precisa ser construído com FEATURE_CPIO_P
defined (também LONG_OPTS
para opções de formulário longo a serem ativadas para qualquer programa).
Da sua última pergunta, eu recomendo strongmente que você use rsync
para o que você está fazendo. Provavelmente, é melhor você fazer outra pergunta detalhando exatamente o que está fazendo com rsync
e por que ela não faz o que você espera. rsync
é uma ferramenta extremamente versátil e, sem dúvida, pode ser configurada para fazer o que você quer.
Dito isto, você poderia tentar o seguinte com cpio
, isto irá criar um arquivo e depois extraí-lo novamente (um pouco menos eficiente, mas ainda o mesmo resultado):
find . -mtime -2 | cpio -o | { cd /media/USB_FLASH_2 && cpio -imd; }
Infelizmente, a opção -o
também pode ser desativada na opção BusyBox
( FEATURE_CPIO_O
build), portanto isso pode não funcionar.
Atualizar
Com base nessa linha de saída, você precisa adicionar uma opção extra ao criar um arquivo:
-o Create (requires -H newc)
Isso altera o comando para:
find . -mtime -2 | cpio -oH newc | { cd /media/USB_FLASH_2 && cpio -imd; }
Desta vez eu testei com o cpio
no BusyBox
para o meu próprio sistema e funciona para mim, no entanto, em alguns casos, os mtimes para diretórios não serão preservados. rsync
deve ser a melhor maneira de fazer isso.