Mover arquivos para diretórios diferentes

1

Estou tentando mover a mídia e outros arquivos que estão em um diretório especificado para outro diretório, que será criado se não existir. E estou tentando criar um diretório onde os arquivos restantes com extensões diferentes irão. Meu primeiro problema é que meu script não está criando um novo diretório e não está movendo os arquivos para outros diretórios. Como posso mover arquivos com extensões diferentes para um diretório?

Isso é o que eu tenho até agora. Por favor, corrija-me onde estou errado e ajude a modificar o meu script:

#!/bin/bash
From=/home/katy/doc
To=/home/katy/mo #directory where the media files will go
WA=/home/katy/do # directory where the other files will go
 if [ ! -d "$To" ]; then
   mkdir -p "$To"
 fi
cd $From
find . -type f -name"*.mp4" -exec mv {} $To \;
    
por kickev 11.12.2011 / 10:04

1 resposta

2

Tente isto:

#!/bin/bash
# Call this script with the extensions you want to move.
# E.g.,     ./script mp4 avi flv
From="/home/katy/doc"
To="/home/katy/mo" #directory where the media files will go
WA="/home/katy/do" # directory where the other files will go
 if [[ ! -d "$To" ]]; then
   mkdir -p "$To"
 fi
cd "$From"
for i in "$@"; do # You could also hard code this: for i in mp3 mp4 avi; do
  find . -type f -name "*.${i}" -exec mv "{}" "$To" \;
done

{e} são caracteres especiais. Acho que adicionar um monte de citações ao seu script ajudará a torná-lo mais claro e a funcionar melhor.

    
por Scott Severance 11.12.2011 / 11:13