Pipe Localizar resultados de '* .squashfs' para unsquashfs

2

Eu estou procurando por algo que irá encontrar o sistema de arquivos esmagado, e passar a saída para descompactar o fs e ele teria que ser um caminho absoluto fora do squashfs.

exemplo

/tmp/mnt/live/filesystem.squashfs

saída desejada

/tmp/unsquashedfs/files

Estou brincando com linhas de código como

find /tmp/mnt -iname '*.squashfs' -exec unsqaushfs '*.squashfs' {} \;

find /tmp/mnt -print0 -iname "*.squashfs" | unsquashfs "*.squashfs" -T - 

Mas não consegue fazer funcionar. Qualquer ajuda de alguém seria apreciada!

    
por FreeSoftwareServers 20.09.2015 / 05:20

2 respostas

2

Você está basicamente procurando

find /tmp/mnt -iname '*.squashfs' -exec unsquashfs {} \;

{} é substituído pelo caminho para o arquivo correspondente.

Se você quiser especificar para qual diretório deseja extrair, passe a opção -d .

find /tmp/mnt -iname '*.squashfs' -exec unsquashfs -d /tmp/unsquashedfs/files {} \;
    
por 20.09.2015 / 23:46
0

Então imaginei que estava trabalhando de trás para frente e isso funcionou para mim

sudo find . -type f \( -name '*.squashfs' -o -name "*.SQFS" \) -exec cp {}  /tmp/fs.squashfs  \; && sudo unsquashfs /tmp/fs.squashfs

O que eu finalmente terminei graças à ajuda dos usuários! (Eu precisava de capacidade para procurar por parâmetros diferentes e ser capaz de adicionar mais no futuro)

find /tmp/mnt \( -iname '*.squashfs' -o -iname "*.SQFS" \) -exec unsquashfs -d /tmp/squashfs-root/ {} \;
    
por 20.09.2015 / 05:34