Automatizando a cópia de arquivos

0

Eu quero copiar todos os arquivos dos meus Documentos das últimas 24 horas em um arquivo. E depois disso eu quero selecionar todas as linhas no arquivo, que deve ser o caminho do documento, e copiá-lo para outro diretório. Mas eu tenho um problema.

Isso é para copiar o caminho e o nome dos documentos em um arquivo:

find ./Documents -mtime -1 -type f > ./Documents/renc.txt

Isso funciona.

Eu recebo todos os documentos criados ou modificados neste arquivo com o caminho deles pelas últimas 24 horas.

Mas, quando quero dar um valor 'b' para poder copiar o arquivo depois disso, não posso.

b= 'sed -n "3p" ~/Documents/renc.txt'

bash: ~/Documents/test.odt: No such file or directory

Se não estiver claro, o que eu quero é obter ~ / Documents / test.odt do arquivo renc.txt, que deve obter o valor 'b'. Então tem uma outra linha de comando

cp $b ~/Others

Depois, é claro, eles serão poucos documentos, então adicionarei um loop para obter todas as linhas do arquivo.

Obrigado pela sua ajuda,

Mat

    
por Mat 24.02.2018 / 13:16

1 resposta

0

Se o que você realmente está perguntando é: "Como posso copiar meus documentos para um diretório diferente todos os dias, para um backup?" então você pode usar rsync . Essa ferramenta considerará todos os arquivos na árvore de origem, mas copiará apenas esses arquivos mais recentes na árvore de origem:

rsync -av Documents/ /path/to/backupDocuments/

Se você está perguntando: "Como posso copiar meus documentos para um servidor remoto todos os dias, para um backup?" então você pode usar rsync correndo sobre ssh . Esta versão copiará apenas as partes necessárias dos arquivos que são mais recentes na árvore de origem:

rsync -av Documents/ remoteuser@remotehost:backupDocuments/

Se você realmente deseja apenas encontrar documentos criados ou modificados nas últimas 24 horas e copiá-los em algum lugar (tendo em mente que arquivos mais antigos podem ser ignorados se você não executar o script com precisão a cada 24 horas), isso pode ajudar. Ele criará uma lista de arquivos em /tmp/copied_files.list no caminho:

find Documents -depth -mtime -1 fprint /tmp/copied_files.list -print0 |
    pax -0 -d -rw /path/to/backupDocuments/

Considerando tudo, recomendo o rsync como a melhor opção.

    
por 24.02.2018 / 16:55