O script para copiar arquivos para x locais de regras é cumprido

0

Eu gostaria de criar um script de automação que me perguntasse por uma pasta específica, e na seleção eu gostaria que ele pesquisasse o seguinte e fizesse x tarefas

  • se os arquivos forem .mkv e não contiverem "amostra" no nome do arquivo e forem < Cópia de 2 GB para x local
  • se os arquivos forem .mkv e não contiverem "amostra" no nome do arquivo e forem > Cópia de 2 GB para a localização z. Para quaisquer arquivos que não atendam a esses requisitos, o arquivo deve ser excluído juntamente com a pasta pai selecionada.
por Imran 02.05.2013 / 01:34

1 resposta

1

Você pode simplesmente executar um script de shell como este em um editor de código como TextMate :

d=~/Folder
find "$d" -name '*.mkv' -a ! -name '*sample*' -a -size -2G -exec cp {} ~/x \;
find "$d" -name '*.mkv' -a ! -name '*sample*' -a -size +2G -exec cp {} ~/z \;
rm -r "$d"
  • \; leva um argumento de cada vez (\ + levaria vários argumentos), mas neste caso, copiar arquivos leva muito mais tempo do que iniciar novos processos de cp
  • 2G é 2 GiB (2 * 2 ^ 30 bytes)
  • + 2G e -2G são exclusivos, mas provavelmente não haverá arquivos com exatamente 2 Gib
  • {} não precisa ser citado
  • o cp não mantém horários de modificação ou criação, a menos que você adicione -p (ou -a, o que implica -p)
  • Você também pode usar o lixo em vez de rm -r
por 02.05.2013 / 09:58