Se você quiser encontrar arquivos, o comando find
é uma ferramenta poderosa. Você pode procurar em um diretório e imprimir os caminhos de todos os arquivos que correspondem a alguns testes:
# find all files in /some/directory whose name starts with 'project_b'
find /some/directory -iname 'project_b*'
# find all files in /some/directory which are owned by user 'joe'
find /some/directory -user joe
# find all files in /some/directory whose name starts with 'project_b'
# but which are *not* owned by user 'joe'
find /some/directory -iname 'project_b*' -and -not -user joe
Para obter a data da última modificação de um arquivo (ou, mais precisamente, a última modificação do conteúdo de um arquivo), é possível verificar o timestamp mtime. find
tem um teste para mtime:
# find all files, whose mtime is less than 365 days back
find /some/directory -mtime -365
Isso até agora fornece uma lista de todos os arquivos que você deseja fazer backup. Agora para o backup em si. find
traz uma opção chamada -exec
que aplica um comando a todos os arquivos encontrados:
find /some/directory -iname '*.txt' -exec cp {} /somewhere/else \;
Se o comando find encontrar test.txt
, other.txt
e something.txt
, a parte -exec
será executada:
cp test.txt /somewhere/else
cp other.txt /somehwere/else
cp something.txt /somewhere/else
Como você provavelmente pode ver, o {}
é substituído pelo arquivo em questão.
EDIT: Você provavelmente precisará encontrar uma solução melhor do que apenas cp
para o próprio backup, porque cp
iria copiar todos os arquivos para /somewhere/else
sem manter a estrutura de diretório.
No geral, um programa de backup dedicado pode ser uma opção melhor.