No que diz respeito ao sistema operacional Linux, julgue o i...
No que diz respeito ao sistema operacional Linux, julgue o item que se segue.
O comando $ find /home -size +1M -print0 | xargs -0 ls –l
cria um arquivo no diretório corrente, contendo uma
lista detalhada de todos os arquivos com tamanho acima
de 1 Mb localizados no diretório /home.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado.
A questão aborda a utilização de comandos no Linux para localizar arquivos dentro de um diretório e realizar operações com eles. O comando find
é frequentemente utilizado para buscar arquivos e diretórios que atendem a determinados critérios. O fragmento -size +1M
especifica que estamos interessados em arquivos maiores que 1 megabyte. O parâmetro -print0
produz uma saída do find
com os nomes dos arquivos separados por um caractere nulo, em vez de novas linhas, o que é útil para lidar com nomes de arquivos que contêm espaços ou outros caracteres especiais.
O comando xargs
é usado para construir e executar comandos a partir de entradas padrão. A opção -0
(zero) informa ao xargs
que ele deve tratar a entrada como uma lista de itens delimitados por um caractere nulo, o que corresponde à saída produzida pelo -print0
do find
.
Contudo, o comando apresentado na questão não cria um arquivo no diretório corrente contendo a lista dos arquivos. O que ele faz é executar o comando ls -l
para listar detalhadamente todos os arquivos encontrados pelo find
. O resultado dessa listagem seria exibido no terminal, e não armazenado em um arquivo. Para que os resultados fossem salvos em um arquivo, deveria haver um redirecionamento de saída utilizando o operador >
ou >>
, seguido pelo nome do arquivo onde os resultados deveriam ser armazenados.
Portanto, o comando apresentado na questão efetivamente lista detalhadamente os arquivos maiores que 1 Mb no diretório /home
, mas não cria um arquivo com essa listagem no diretório corrente. Por essa razão, a afirmação é errada.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
O comando FIND não cria o arquivo. Pecebe-se o erro da questão ao afirmar que cria um arquivo no diretório corrente.
Esse seria o comando para criar o arquivo com a lista detalhada:
$ find /home/ -size +1M -fls find_output__with_null_char_as_separator.log
Mesmo resultado utilizando a saída padrão:
$ find /home/ -size +1M -exec ls -l '{}' \; >> find_output__with_null_char_as_separator.log
e-
procura arqs > 1 MB em home
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo