Como encontrar um arquivo pelo nome do meio e apagá-lo?

1. Como encontrar um arquivo pelo nome do meio e apagá-lo?

Priscila
haley

(usa Red Hat)

Enviado em 23/06/2017 - 15:53h

Olá Pessoal,

explicando melhor o que preciso fazer. Tenho dentro de uma pasta /u01/backup/ alguns arquivos de backup que são gerado todos os dias conforme abaixo:

ORCL_1234_full_abcd.bkp
ORCL_5678_full_efgh.bkp
ORCL_9876_arch_ijkl.bkp
c-1234abcd.bkp

Preciso encontrar no caminho /u01/backup, os arquivos, mas buscando pelo nome 'full', ou seja, só pode apagar os arquivos que tenham 'full' no nome.

Pensei no comando find /u01/backup -iname *full* -exec rm {} \;

Mas dessa maneira, não acontece nada. Como devo fazer?

obrigada,


  


2. Re: Como encontrar um arquivo pelo nome do meio e apagá-lo?

João Batista
ryuuzaki42

(usa Slackware)

Enviado em 23/06/2017 - 23:03h

Pensei no comando find /u01/backup -iname *full* -exec rm {} \;

Chegou bem perto, use:
find /u01/backup -name "*full*" -exec rm {} \; 

Ou um script mais detalhado/bonito kkk
#!/bin/bash
folderBackup="/u01/backup/"

fileFull=$(find "$folderBackup" | grep "full")

echo "Os arquivos que serão apagados:"
echo "$fileFull"
echo -n "Quer continuar?(s)im - (n)ão: "
read deleteFiles

if [ "$deleteFiles" == 's' ]; then
for file in $(echo "$fileFull"); do
echo "Apagando arquivo: $file"
rm "$file"
done
else
echo -e "\nNenhum arquivo foi apagado\n"
fi
echo "Fim do script"

Obs: O find seleciona qualquer diretório e arquivo com parte do nome "*full*" que tiver dentro de "/u01/backup/" e logo depois apaga eles (não apenas arquivos). Adicione "-type f" se quiser que find apenas trabalhe com arquivos (ignorando diretórios)
Adicione "-maxdepth 1" caso queria o find apenas trabalhe em "/u01/backup/" não entrando em outros diretórios que possam ter abaixo de "/u01/backup/".
Flw






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts