Como escrever um script de shell que leva o nome de uma pasta e exclui todas as subpastas?

0

Estou preso ao script que escrevi no Bourne Shell.

Script:

echo "Who are you?"
read Individual
echo "Hello,$Individual"

echo "Where you want to go?"
read Path
grep -c "Path" file.txt
    
por Daniel Dharmaraj 03.08.2018 / 06:35

1 resposta

1

Dados de amostra

$ mkdir -p dir{1..3}/dir{1..3}
$ tree dir*
dir1
├── dir1
├── dir2
└── dir3
dir2
├── dir1
├── dir2
└── dir3
dir3
├── dir1
├── dir2
└── dir3

9 directories, 0 files

O script

$ cat deletey.sh
#!/bin/bash

echo "Where you want to go?"
read Path
rm -fr $Path/*

Exemplo de execução

$ ./deletey.sh
Where you want to go?
dir1
$

Resultado

$ tree dir*
dir1
dir2
├── dir1
├── dir2
└── dir3
dir3
├── dir1
├── dir2
└── dir3

6 directories, 0 files

Alternativas

Em vez de usar o rm -fr $Path/* , você pode optar por usar um find :

encontra dirs em $PATH & elimina
find $Path -mindepth 1 -type d -exec rm -fr '{}' +
igual ao anterior, é executado de dentro de $PATH
find $Path -mindepth 1 -type d -execdir rm -fr '{}' +
    
por 03.08.2018 / 06:48