Eu estou tentando remover o arquivo abaixo para todas as contas de usuário através de um script bash mas o curinga * parece não funcionar. Eu tenho testado o script localmente, executando-o no mac os x terminal.
Arquivo plist a ser excluído: com.apple.eap.bindings.XXXXXXX.plist
#!/bin/bash
for dir in /Users/*;
do
if [[ -e "${dir}/Library/Preferences/com.apple.eap.bindings.*" ]]; then
rm "${dir}/Library/Preferences/com.apple.eap.bindings.*"
fi
done
O código acima não exclui o arquivo em questão, mas funciona se eu apontar para o nome exato do arquivo sem o caractere curinga. Eu tentei remover aspas também, mas ainda não exclui o arquivo. Alguém poderia ajudar por favor?
macos
command-line
bash
mgrev
fonte
fonte
Respostas:
Nesta linha você coloca o asterisco entre aspas duplas. Isso faz dele um char literal e não algo que magicamente se expande para filename (s).
Links: aspas duplas-vs-asterisco-nome-de-arquivo-expansão-em-bash assim como o post já apontado por Shaun .
Você terá que usar o asterisco sem aspas. Seja como na primeira parte do seu script ou como um argumento para
find
.fonte
if [ -z "$(echo ${dir}/Library/Preferences/com.apple.eap.bindings.*|grep -q '*')" ]; then
Você poderia considerar isso como uma alternativa
Isso efetivamente removerá os arquivos em questão. Remova a opção 'v' se você não quiser saída.
fonte
Se isso ajudar alguém, é o que funciona para mim:
fonte