grep/lista bash recursivo

grep/lista bash recursivo
parts = grep "/root/backups/*"

for part in $parts
do
    echo $part
    rm -rf $part #delete
done

Basicamente, preciso percorrer uma pasta e retornar todos os itens da pasta usando um script Bash.

Não é possível trabalhar via grep, embora possa ser uma maneira muito mais simples. A primeira linha é puro código pseudo-sem pistas.

Responder1

Isso pode ser feito facilmente sem loop.

Se você quiser apenas se livrar dos arquivos, basta usar rm:

$ rm -rf /root/backups/*

Se você quiser mostrar os nomes dos arquivos ao excluí-los, use find:

$ find /root/backups -maxdepth 1 -mindepth 1 -print -exec rm -rf {} \;

A opção -maxprofundidade diz ao find para não descer mais do que um nível do ponto inicial, /root/backups. A opção -minprofundidade informa ao find onde começar a retornar resultados, efetivamente dizendo ao find para ignorar o ponto de partida. A opção -print apenas imprime os arquivos encontrados na tela. Com o -exec, os {} são substituídos pelos arquivos encontrados, então isso chama rm para excluí-los.

EDIT: eliminou um -exec desnecessário por comentário

Responder2

Altere o comando grep para:

para i em ``ls -bRC1 /path/* ; faça echo $i ; rm$i; feito

O -b irá escapar de espaços e outros caracteres que podem resultar em erros e consequências não intencionais com o rm. -R é recursivo. -C1 é uma coluna única (que pode ser redundante). Eu reconsideraria o -rf

Você pode querer usar find em vez de um loop for

find /path -H -maxdepth 3 -type f -mtime +7 -exec rm {} \; -ls

Se você não sabe o que significam as opções acima, digite man find.

Responder3

grep -l fornecerá apenas os nomes dos arquivos

partes = grep -rl ....

Responder4

Você deseja uma lista de nomes de arquivos em um determinado diretório. Existe um programa que faz isso, e você fica com vergonha de ler o nome dele: ls. Isso é tudo que faz! Você deseja uma listagem recursiva incluindo arquivos em subdiretórios, então use ls -R. Você pode colocar a saída disso em uma variável em seu script e fazer o que quiser com ela.

informação relacionada