Como criar uma estrutura de pastas específica dentro de várias subpastas

0

Eu tenho uma estrutura de pastas parecida com esta

drwxrwxr-x+  9 root            admin       306 May  3 10:19 .
drwxrwxrwx  15 root            admin       510 May  5 16:14 ..
drwxr-xr-x+  3 root            admin       102 May  3 10:19 Scripts
drwxr-xr-x+ 74 root            admin      2516 May  3 10:20 Windows 10
drwxr-xr-x  90 root            admin      3060 May  3 10:03 Windows 7

Dentro da pasta / Scripts, eu tenho o seguinte script de shell

mkdir_drivertypes.sh

Aqui está o conteúdo do script mkdir-drivertypes.sh

mkdir BIOS
mkdir Video
mkdir Audio
mkdir Network
cd Network
mkdir Wired
mkdir Wireless
mkdir Bluetooth
cd .. 
mkdir Chipset
mkdir Modem
mkdir System
mkdir Storage
mkdir Other
mkdir Input
rm mkdir_drivertypes.sh

Basicamente, o script apenas cria uma estrutura de pastas para conter drivers para cada tipo para o qual eu sou mkdir'ing.

Aqui está a estrutura da pasta do Windows 7:

drwxrwxr-x+ 10 root  admin      340 Apr 28 09:28 Alienware 14
drwxrwxr-x+ 12 root  admin      408 Apr 21 10:11 Alienware 17
drwxrwxr-x+ 13 root  admin      442 Apr 28 08:44 Alienware Aurora
drwxrwxr-x+ 13 root  admin      442 May  2 08:42 Alienware Aurora r2
drwxrwxr-x+ 12 root  admin      408 Apr  6 09:30 Alienware Aurora r3
drwxrwxr-x+ 14 root  admin      476 Apr  5 07:53 Alienware Aurora r4
drwxrwxr-x+ 12 root  admin      408 Mar 28 08:32 Alienware m11x r2
drwxrwxr-x+ 12 root  admin      408 Mar 25 12:02 Alienware m11x r3
drwxrwxr-x+  6 root  admin      204 Apr 26 12:51 Alienware m14
drwxrwxr-x+ 12 root  admin      408 Apr 28 08:58 Alienware m14x
drwxrwxr-x+ 14 root  admin      476 Mar 28 09:29 Alienware m14x r2
drwxrwxrwx+ 11 root  admin      374 Apr 28 08:43 Alienware m15x
drwxrwxr-x+ 10 root  admin      340 Apr 26 08:58 Alienware m17x r2
drwxrwxr-x+ 11 root  admin      374 Apr 26 12:20 Alienware m17x r3
drwxrwxr-x+ 14 root  admin      476 Apr 26 12:20 Alienware m17x r4
drwxrwxr-x+ 12 root  admin      408 Apr  7 11:17 Alienware m18x
drwxrwxr-x+ 15 root  admin      510 Mar 28 09:57 Alienware m18x r2
drwxrwxr-x+ 13 root  admin      442 May  2 08:30 Alienware x51
drwxrwxr-x+ 15 root  admin      510 May  1 21:36 Alienware x51 r2
drwxrwxr-x+ 31 root  admin     1054 May  1 14:44 Dell Inpirion 17 n7010
drwxrwxr-x+ 16 root  admin      544 Mar 28 10:54 Dell Inspiron 14r n4010
drwxrwxr-x+ 13 root  admin      442 May  2 08:53 Dell Inspiron 14r n4110
drwxrwxrwx+ 35 root  admin     1190 Apr 28 00:15 Dell Inspiron 15 n5010
drwxrwxr-x+ 13 root  admin      442 Mar 28 11:09 Dell Inspiron 15 n5050
drwxrwxr-x+ 13 root  admin      442 May  2 09:03 Dell Inspiron 15r 5520
drwxrwxr-x+ 12 root  admin      408 Mar 28 11:23 Dell Inspiron 15r 5537
drwxrwxr-x+ 15 root  admin      510 Mar 28 11:34 Dell Inspiron 15r n5110
drwxrwxr-x+ 13 root  admin      442 Apr 25 11:17 Dell Inspiron 17 3721
drwxrwxr-x+ 13 root  admin      442 Apr 22 08:20 Dell Inspiron 17r 5721

E assim por diante, você tem a idéia - cada pasta do Windows contém o nome do fabricante, modelo, série, etc.

Anteriormente, eu estava copiando o arquivo mkdir_drivertypes.sh em uma determinada pasta que corresponde ao fabricante / modelo / série, executando o script que criaria a estrutura de pastas e, em seguida, o script se removeria desse diretório.

No entanto, agora temos uma enorme coleção de drivers do Windows 10 para organizar todos os mesmos modelos de máquinas. Eu criei uma pasta do Windows 10, copiei a estrutura de nível superior da pasta do Windows 7 executando ls -1b (estou fazendo isso em um Mac btw) que produz uma saída de formato de lista longa sem qualquer uma das permissões ou proprietários de arquivo / pasta . Usei essa lista para criar outro script mkdir para criar a estrutura de nível superior, mas agora estou procurando uma maneira de automatizar automaticamente a criação das pastas do driver em cada pasta sem precisar executar o script em cada pasta.

Então, minha pergunta é: como eu automatizaria a criação de subpastas em \ Windows 10 \ Manufacturer Model Series \ usando meu script mkdir_drivertypes.sh?

Estou bem com algum método alternativo (estou totalmente convencido de que existe um método alternativo que não estou considerando) para criar essas subpastas também.

    
por Richie086 06.05.2016 / 23:18

1 resposta

1

O seguinte funcionará em bash - para Mac, Linux e em breve o Windows 10 com o bash.

Em vez de copiar seu script mkdir_drivertypes.sh , considere uma função bash no seu .bash_profile . Por exemplo, o conteúdo a seguir no seu ~/.bash_profile permitirá que você crie a estrutura de diretórios desejada em seu diretório de trabalho atual.:

mkdir_drivertypes()
{
    mkdir -p ./{BIOS,Video,Audio,Network,Chipset,Modem,System,Storage,Other,Input}
    mkdir -p ./Network/{Wired,Wireless,Bluetooth}
    return 0
}

Você pode sair do seu terminal e abrir um novo para obter acesso à função ou source ~/.bash_profile para acessá-lo em seu terminal atual

cd para o diretório no qual você deseja que a estrutura de diretório seja criada e, em seguida, execute mkdir_drivertypes .

No meu sistema:

$ cd Windows10\Manufacturer\Model
$ pwd
/Users/waywardone/Windows10/Manufacturer/Model
$ mkdir_drivertypes 
$ ls -R
Audio   BIOS    Chipset Input   Modem   Network Other   Storage System  Video
./Audio:
./BIOS:
./Chipset:
./Input:
./Modem:
./Network:
Bluetooth   Wired       Wireless
./Network/Bluetooth:
./Network/Wired:
./Network/Wireless:
./Other:
./Storage:
./System:
./Video:
    
por 06.05.2016 / 23:56