Eu gostaria de executar uma linha de comando:
cd ~/www/tmp/; rm -P 2*
Mas recebo um erro se não houver arquivos começando com 2.
Você pensaria que eu gostaria de usar -f
, no entanto:
-f Attempt to remove the files without prompting for confirmation, regardless of the file's permissions. If the file does not exist, do not display a diagnostic message or modify the exit status to reflect an error.
E eu faço o cuidado sobre o arquivo permissions- se há algo estranho acontecendo, eu prefiro o comando abortar. Eu só quero suprimir erros 'não existem'.
Examinei algumas outras perguntas com 'erros rm' e encontrei essas duas que parecem (um pouco) relevantes:
Exclua arquivos e diretórios por seus nomes. Não existe tal arquivo ou diretório
Mas não entendo tudo o que está acontecendo nas respostas a essa pergunta e não sei se preciso disso?
O touch
hack sugerido nesta pergunta:
A rm não informou quando um arquivo está faltando?
Parece viável, pois acho que não me importo com o impacto no desempenho (mas que tipo de impacto você levaria? - ou seja: essa é uma técnica razoavelmente escalável ou estou apenas aprendendo hábitos muito ruins?)
Não tenho certeza de como eu faria if-then
dentro da linha de comando.
Existem outras opções para uma limpeza simples da linha de comando cut-n-paste?
Funcionaria find -delete
melhor para o meu caso? Se sim, por quê?
erro em questão:
rm: 2*: No such file or directory
zsh
como seu shell interativo? Você está recebendo um No matches found
erro?
2*
para rm em vez de expandi-la para uma lista de arquivos. Olhe para o erro em questão: ele diz que rm está reclamando, não sh / bas / zsh / ...
rm
, então você precisará dizer o que é isso.