Não olhe para este hack feio abaixo. Se eu tiver que fazer isso de novo, atualizarei minha essência para ser mais útil: link
coisas inúteis abaixo:
Ok, usei essa abordagem se alguém precisar:
-
obtenha uma lista de arquivos em arquivos novos e antigos:
$ find new_dir -type f > arch.txt $ find old_dir -type f > arch_old.txt
btw você pode usar
find -name ".?*" -prune -o -type f
para evitar arquivos ocultos -
use este script
ruby
para obter uma lista dos arquivos que estão presentes na porca de arquivo antiga e não na nova:org_arch = "arch.txt" to_arch = "arch_old.txt" # populate Hash with files under question to archive arch={} File.open(to_arch, "r") do |infile| while (line = infile.gets) arch[File.basename(line)] = line end end # remove from Hash what has already been archived File.open(org_arch, "r") do |infile| while (path = infile.gets) arch.delete(File.basename(path)) end end #print files to be archived arch.each { |name,path| puts path }
-
Veja o tamanho dos arquivos que você precisa copiar:
cat to_arch.txt | xargs -d "\n" stat -c "%s" | awk '{size+=$1} END {print size}'
No meu caso, fui de 200 GB para cerca de 80. Espero que isso ajude alguém.