Exclua arquivos e pastas com nome específico de um determinado diretório

Exclua arquivos e pastas com nome específico de um determinado diretório

Eu tenho uma pasta /home/userA/folderAque contém muitos arquivos, pastas e subpastas. O que eu quero fazer é excluir todos os arquivos que possuem determinados nomes data.txte extensões glass.txt. Também quero excluir qualquer pasta nomeada matchcom todo o seu conteúdo. Eu ficaria grato por qualquer conselho sobre como fazer isso.

Responder1

Você pode excluir os arquivos e pastas nos subdiretórios de folderA.

Para remover os arquivos, execute:

find /home/userA/folderA/* -type f \( -name "data.txt" -or -name "glass.txt" \) -delete 

e para remover as pastas match:

find /home/userA/folderA/* -depth -name "match" -type d -exec rm -rf "{}" \; 

Responder2

E a opção detalhada (python):

#!/usr/bin/env python3

import os
import shutil

# --------------------------------------------------------
reorg_dir = "/path/to/your/folder"
remove_files = ("data.txt", "glass.txt")
remove_dirs = ("match")
# ---------------------------------------------------------

for root, dirs, files in os.walk(reorg_dir):
    for name in files:
        if name in remove_files:
            os.remove(root+"/"+name)
    for dr in dirs:
        if dr in remove_dirs:
            shutil.rmtree(root+"/"+dr)

Copie o script para um arquivo vazio, defina o diretório e se quiser/precisar: edite a lista de arquivos e pastas a serem removidos, salve-o como reorg.py e execute-o pelo comando:

python3 /path/to/reorg.py

Responder3

Você pode simplesmente executar o seguinte comando (tenha cuidado e verifique tudo porque isso não é reversível!) Isso excluirá todos os arquivos que contenham a palavra data ou glass que sejam arquivos .txt.

sudo rm -rf /home/userA/folderA/*data*.txt

sudo rm -rf /home/userA/folderA/*glass*.txt

Você pode encontrar qualquer pasta chamada match usando o comando localizar:

locate match

Depois de encontrar os caminhos, basta executar o comando acima para toda a pasta

sudo rm -rf /path/to/match

Atenciosamente, Lev

informação relacionada