A adição de uma barra ao curinga restringe a saída aos diretórios
for dir in */; do ...
Você vai querer ler sobre expansão do parâmetro bash - - você pode encontrar e substituir dentro do shell:
newname=${dir/%-HD/-SD}
Estou tentando escrever este script de shell para criar no diretório pai uma cópia das pastas encontradas no diretório atual. Até agora, escrevi isto:
for folder in *; do
mkdir ../$folder;
done
Gostaria de fazer uma operação "localizar e substituir" no nome da pasta, para que, por exemplo, a pasta chamada graphics-HD
seja copiada como graphics-SD
Desculpe se é simplista, mas eu absolutamente não tenho experiência com shell script / unix.
Muito obrigado! J.
A adição de uma barra ao curinga restringe a saída aos diretórios
for dir in */; do ...
Você vai querer ler sobre expansão do parâmetro bash - - você pode encontrar e substituir dentro do shell:
newname=${dir/%-HD/-SD}
não há nada de errado com o que você tem, exceto que ele criará pastas de arquivos e pastas. Você pode verificar se toda pasta é um diretório com [-d $ folder] ou usar o find. Na pasta em que você tem pastas que deseja copiar:
find -type d -maxdepth 1 -exec mkdir "../{}" \+
Para pesquisar e substituir, há renomeação de rename.berlios.de . você pode renomear todas as pastas em algum lugar assim:
renamexm -s/-HD/-SD/ 'find . -type d -maxdepth 1'
Tags unix shell-script script