Laço de bash para detectar tamanhos de pasta iguais

1

Eu gostaria de detectar quando a transferência de uma grande quantidade de arquivos é concluída. Eu gostaria de realizar isso detectando o tamanho da pasta com um atraso.

Abaixo está o que eu fiz,

  #!/bin/bash

firstSize= du -s /Users/test/Desktop/folder | cut -f1

sleep 3
newSize= du -s /Users/test/Desktop/folder | cut -f1


until [ $firstSize -eq $newSize ]
do
    firstSize=$newSize
    sleep 3
    newSize= du -s /Users/test/Desktop/folder | cut -f1

done

echo 'Done'

O loop until não está funcionando porque, mesmo quando o firstSize e o newSize não são iguais, o loop é concluído. Eu não estou familiarizado com a escrita de scripts Bash, então estou apenas cometendo erros. Esse loop é portado de um applescript que eu escrevi para o mesmo propósito, mas eu preciso de algo mais confiável.

    
por lightwalker 16.09.2018 / 23:22

1 resposta

0

Você atrapalhou a sintaxe dos comandos. O script deve se parecer com:

#!/bin/sh -
firstSize=$(du -s /Users/test/Desktop/folder | cut -f1)
until
  sleep 3
  newSize=$(du -s /Users/test/Desktop/folder | cut -f1)
  [ "$firstSize" -eq "$newSize" ]
do
    firstSize=$newSize
done
echo 'Done'
    
por 17.09.2018 / 07:06