Script de shell para funcionar em subpastas

2

Eu quero escrever um script de shell simples que irá para todas as subpastas em um diretório e organizar os arquivos nas subpastas em novos diretórios. Basicamente no terminal seria parecido com:

cd ../subfolder1
mkdir newfolder
mv *.txt newfolder
cd ../subfolder2
mkdir newfolder
mv *.txt newfolder
etc.

No entanto, o comando cd parece não funcionar para o script de shell. Alguém sabe como eu poderia fazer isso?

    
por bobleponge314 22.04.2014 / 02:46

1 resposta

2

Se sua estrutura de diretórios é a seguinte:

├── subfolder1
│   ├── foo.txt
│   └── bar.other
└── subfolder2
    ├── foo2.txt
    └── baz.old

Executando o seguinte comando:

find . -maxdepth 1 ! -path . -type d -exec sh -c "mkdir {}/newfolder && mv {}/*.txt {}/newfolder" \;

Criará a estrutura em árvore abaixo:

├── subfolder1
│   ├── newfolder
│   │   └── foo.txt
│   ├── bar.other
└── subfolder2
    ├── newfolder
    │   └── foo2.txt
    ├── baz.old
    
por Sylvain Pineau 22.04.2014 / 03:17