Como saber onde o último arquivo criado pelo meu usuário atual está localizado?

0

Eu uso o Ubuntu 16.04 (xenial) com o Bash 4.3.48 (1) e zip 3.0.

Em um arquivo contendo um script bash ( #!/bin/bash ) com muitas funções diferentes, também tenho essa função usada para criar um backup completo do banco de dados + backup da 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 obtive o arquivo acima mencionado ( source ~/function.sh ) e executei imb no modo de depuração ( set -x ):

Fui solicitado a digitar a senha do banco de dados e, em seguida, passei algum tempo (indicando que o backup do banco de dados foi criado). Além disso, um zip detalhado apareceu (muito longo para colar ou rastrear no terminal) indicando que tudo sob a raiz do documento foi compactado.

Ainda não há backup aparece em /var/www/html/ .

Minha pergunta

Devido a um comentário, acho que devo fazer duas perguntas, que achei semelhantes, mas na verdade diferentes:

  1. Onde o zip colocou meus arquivos (supondo que isso não seja uma "criação de arquivo" no sentido de criação manual como com touch , por exemplo)? É claro que os arquivos criados e localizados em algum lugar por um processo não devem necessariamente pertencer ao meu usuário.

  2. Como eu poderia descobrir onde o último arquivo criado pelo meu usuário atual estava localizado?

Eu esperava que ele estivesse localizado em /var/www/html/ :

zip -r "all_zipped-$date.zip" "$drt"/ -x "*/cache/*"

mas não foi. Eu não sei uma maneira eficiente de saber onde ele foi criado sem executar na árvore de arquivos inteira do meu sistema a partir do root ( / ), já que isso pode levar horas nessa máquina.

Atualizar

Ao escrever esta pergunta, eu visitei meu diretório home ( $HOME/ ), lá encontrei o arquivo, mas não sei por que ele foi criado lá no documento raiz.

    
por user9303970 14.04.2018 / 16:15

1 resposta

2
zip -r "all_zipped-$date.zip" "$drt"/ -x "*/cache/*"

cria um arquivo no diretório atual, seja lá o que for (seu diretório pessoal, neste caso).

Se você deseja criar o arquivo em ${drt} , precisa informar zip :

zip -r "${drt}/all_zipped-$date.zip" "$drt"/ -x "*/cache/*"

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 timestamp. Usando o horário da última modificação como uma aproximação para o tempo de criação:

find . -user user9303970 -printf "%T@ %p\n" | sort -n -k1,1 -r | head -n 1
    
por 14.04.2018 / 17:26