Script Bash para localizar arquivos com uma string no título e imprimi-los e pedir para excluí-los

0

Eu gostaria de poder tornar esse título mais específico. Então, eu preciso fazer um script bash que leva dois argumentos, um é a seqüência de caracteres para procurar nos nomes de arquivos e o próximo é o caminho do arquivo para procurar dentro Em seguida, ele precisa passar por um arquivo correspondente de cada vez e imprimi-lo fora e, em seguida, solicitar ao usuário se deseja excluí-lo. Um exemplo disso seria:

./scriptName.sh foo /path/to/directory/

/path/to/directory/foo.txt

Delete this? (y/n)

user input

/path/to/directory/foop.txt

Delete this? (y/n)

user input

etc...

Eu originalmente tentei

find $2 -type f -name "*$1*" -print

e

find $2 -type f -name "*$1*" -delete

Onde $1 é o primeiro argumento e $2 é o segundo argumento, é claro. E isso funcionou até que eu percebi que tinha que listar cada um separadamente, em seguida, pedir para excluí-los, o que é um pouco problemático, já que as duas linhas de código anteriores fazem todos os arquivos correspondentes de uma só vez.

    
por user276019 10.04.2016 / 06:32

1 resposta

0

pattern=$1
dir=$2

for file in $(find ${dir} -type f -name "*${pattern}*")
do
  /bin/rm -i ${file}
done

Basicamente, você está circulando pelos arquivos que o comando find retorna e o comando rm -i está pedindo a você que uma pergunta y/n exclua o arquivo ou não. Eu acho que é o que você está procurando, mas se não, deixe que as pessoas saibam qual é a sua necessidade para mais ajuda.

    
por 10.04.2016 / 06:44