mtree (8) e uso de -O

1

Eu estou tentando criar uma especificação para arquivos com raiz em /etc , no entanto, estou interessado apenas no caminho /etc/rc.conf.d & arquivo /etc/rc.conf.local . Eu estou usando o FreeBSD-12 & pode criar especificações para /etc ou /etc/rc.conf.d com êxito:

mtree -cx -K uname,gname,sha512 -p /etc/rc.conf.d/ -R uid,gid > /tmp/etc-conf-d.mtree

Eu gostaria de usar /etc no parâmetro -p , mas gostaria de excluir uma lista de arquivos. Talvez eu esteja entendendo mal a página do manual, achei que -O me permitiria fornecer uma lista de arquivos / caminhos para criar a especificação.

Na página man do mtree (8):

-O onlypaths Only include files included in this list of pathnames.

No entanto, se eu correr:

mtree -cx -K uname,gname,sha512 -p /etc/ -O /etc/rc.conf.d/ -R uid,gid > /tmp/etc-conf-d.mtree

Isso produz um arquivo de especificação com um cabeçalho & não há especificações de caminho. Estou fazendo algo errado, ou estou usando a ferramenta incorreta para o trabalho?

    
por spicysammich 13.10.2016 / 16:17

1 resposta

1

Ok, olhei as fontes para descobrir isso, porque a página man não fornece detalhes realmente necessários para que isso funcione. Eu descobri o seguinte.

A opção -O precisa ser um caminho para um arquivo de texto contendo uma lista de caminhos (observe que "caminho" é terminologicamente diferente de "diretório"). Cada caminho está em uma linha neste arquivo e precisa começar com o prefixo ./ , em que . é implicitamente o diretório atual, que é o diretório especificado com -p .

Parece que a lista de arquivos fornecida com a opção -O deve ser construída com uma ferramenta como find . Você não pode especificar diretórios, mas você precisa de uma lista de caminhos completos (sem duplicatas, até onde eu entendi).

    
por 15.10.2016 / 17:23

Tags