excluindo arquivos mais antigos que um dia específico e excluindo os arquivos diretos na pasta

0

Gostaria de excluir todos os arquivos com mais de 10 dias das subpastas de fluxo de ar

Eu usei o seguinte comando:

 find  /var/log/airflow/  -type f -mtime +10  -delete

mas excluindo todos os arquivos que existem na pasta de fluxo de ar como: arquivo1, arquivo2, arquivo3, arquivo4, arquivo5

pwd

/var/log/airflow

ls -ltr

drwxr-xr-x 2 root root 6 Sep 13 11:15 folder1
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder2
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder3
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder4
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder5
-rw-r--r-- 1 root root 0 Sep 13 11:15 file1
-rw-r--r-- 1 root root 0 Sep 13 11:15 file2
-rw-r--r-- 1 root root 0 Sep 13 11:15 file3
-rw-r--r-- 1 root root 0 Sep 13 11:15 file4
-rw-r--r-- 1 root root 0 Sep 13 11:15 file5

para que todas as subpastas sob fluxo de ar com seus arquivos sejam apagadas, mas não os arquivos sob fluxo de ar. Nesse caso, como posso alterar meu comando para suportar o excludente.

    
por yael 13.09.2018 / 13:20

2 respostas

3

tudo que você precisa fazer é adicionar a opção global -mindepth assim:

$ find /var/log/airflow/ -mindepth 2 -type f -mtime +10  -delete
    
por 13.09.2018 / 13:45
0

Para informar find para procurar apenas em subpastas de / var / log / airflow, forneça os seguintes pontos:

shopt -s dotglob
find  /var/log/airflow/*/* -type f -mtime +10 -delete

Isso força a existência de um subdiretório em / var / log / airflow para corresponder. Eu defino dotglob para que todos os diretórios "ocultos" no fluxo de ar também sejam correspondidos.

    
por 13.09.2018 / 14:33