Questão 56 · Informática: Sistemas operacionais (Windows e Linux)
No seu notebook rodando Windows 10, João pretende remover alguns arquivos presentes na pasta C:\xpto e, recursivamente, as respectivas subpastas em todos os níveis. Devem ser removidos somente os arquivos cuja última alteração tenha ocorrido há mais de 14 dias.
Por meio da PowerShell, o script adequado para essa remoção é:
- A) Remove-Item | Get-ChildItem –Path "C:\xpto" -Recurse | Where-Object {($_.LastWriteTime -< (Get-Date).AddDays(-14))}
- B) Remove-Item –Path "C:\xpto" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(14))}
- C) Remove –Path "C:\xpto" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-14))}
- D) Get-ChildItem From "C:\xpto" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-14))} > Litter
- E) Get-ChildItem –Path "C:\xpto" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-14))} | Remove-Item
Marque a alternativa correta:
Gabarito: E
Gabarito definitivo divulgado pela banca FGV (BANESTES 2021).
Comentário
Gabarito: E.
O script precisa fazer três coisas, nesta ordem: listar recursivamente os itens de C:\xpto, filtrar os que têm LastWriteTime anterior a 14 dias atrás e passar o resultado para a remoção. A alternativa E faz isso:
- Get-ChildItem -Path "C:\xpto" -Recurse lista todos os níveis.
- Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-14) } filtra os itens mais antigos que 14 dias. O sinal negativo em AddDays(-14) volta a data 14 dias no passado, e -lt significa 'menor que', ou seja, mais antigo.
- | Remove-Item remove os itens filtrados.
Nas demais alternativas: (A) usa o operador inválido -< e põe Remove-Item no início, antes da listagem e do filtro; (B) usa AddDays(14), que aponta para o futuro, e Remove-Item vem antes do filtro, de modo que removeria a pasta indicada sem filtrar; (C) começa por Remove em vez de Remove-Item e mantém a mesma ordem errada; (D) usa From em vez de -Path e redireciona a saída para um arquivo chamado Litter, sem remover nada.
Dica: verifique a ordem do pipeline (a saída de um comando alimenta o próximo) e o sinal de AddDays: para arquivos antigos, usa-se -lt com AddDays negativo.
Fundamentos: PowerShell: Get-ChildItem, Where-Object e Remove-Item · Pipeline do PowerShell · Filtro por data com Get-Date e AddDays · Parâmetro -Recurse
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV BANESTES 2021 (Suporte e Infraestrutura), questão 56, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.