Eu uso o Ubuntu 16.04 (xenial) com Bash 4.3.48(1) e zip
3.0.
Em um arquivo contendo um script bash ( #!/bin/bash
) com várias funções diferentes, também tenho essa função usada para criar um backup completo do banco de dados + backup raiz do documento em um arquivo zip :
imb() {
drt="/var/www/html"
date="$(date +%F-%T)"
mysqldump -u root -p --all-databases | zip "$drt/db-$date.zip" - # Note the hyphen before this comment;
zip -r "all_zipped-$date.zip" "$drt"/ -x "*/cache/*"
rm -f "$drt/db-$date.zip"
}
Eu criei o arquivo acima mencionado ( source ~/function.sh
) e executei imb
no modo de depuração ( set -x
):
A senha do banco de dados foi solicitada e, em seguida, algum tempo se passou (indicando o backup do banco de dados criado). Além disso, um zip detalhado apareceu (muito longo para colar ou rastrear no terminal) indicando que tudo na raiz do documento foi compactado.
No entanto, nenhum backup aparece em /var/www/html/
.
Minha pergunta
Devido a um comentário, sinto que devo fazer duas perguntas, que achei semelhantes, mas na verdade diferentes:
Onde o zip colocou meus arquivos (supondo que não seja uma "criação de arquivo" no sentido de criação manual como com
touch
, por exemplo)? Claro, os arquivos criados e localizados em algum lugar por um processo não devem necessariamente pertencer ao meu usuário.Como eu poderia descobrir onde estava localizado o último arquivo criado pelo meu usuário atual ?
Eu esperava que estivesse localizado em /var/www/html/
:
zip -r "all_zipped-$date.zip" "$drt"/ -x "*/cache/*"
mas não foi. Não conheço uma maneira eficiente de saber onde foi criado sem executar toda a árvore de arquivos do meu sistema a partir da raiz ( /
), pois isso pode levar horas naquela máquina.
Atualizar
Ao escrever esta pergunta, visitei meu diretório inicial ( $HOME/
), lá encontrei o arquivo, mas não sei por que ele foi criado lá na raiz do documento.
cria um arquivo no diretório atual, qualquer que seja (seu diretório pessoal neste caso).
Se você deseja criar o arquivo em
${drt}
, você precisa informarzip
:Não há uma maneira trivial de descobrir onde o último arquivo foi criado por um determinado usuário; você precisaria usar
find
e classificar diminuindo o carimbo de data/hora. Usando o horário da última modificação como uma aproximação para o horário de criação: