Undot todos os arquivos e pastas em um disco externo

3

Eu tenho milhares de arquivos, pastas e subpastas pontilhadas em uma unidade de disco rígido externa. Eu quero recuperar todas as fotos dentro dessas pastas. Eu quero undot todos eles para navegar facilmente por essas fotos.

Eu tentei renomear as pastas, mas não parece possível.

    
por ki lee 24.05.2016 / 16:34

1 resposta

2

Confrontos de nomes

A primeira pergunta que você precisa se perguntar é se há uma chance de confrontos conhecidos. Em outras palavras; se houver uma versão oculta do mesmo diretório ou arquivo em um único diretório.

De baixo para cima

Assumindo que não é o caso, essa é uma das situações que você precisa renomear de baixo para cima , já que você não pode renomear (mover) arquivos dentro de pastas que acabaram de ser renomeadas; o script não os encontrará mais e quebrará.

Tornando os arquivos ocultos visíveis

Além disso, enquanto escrevia esta resposta, um comentário do @Rinzwind apareceu acima da minha cabeça, mencionando que pressionar Ctrl + H tornará todos os arquivos e pastas ocultos visíveis, o que é verdade, claro.

Se, no entanto, você quiser renomear os arquivos e pastas:

Um script para fazer isso

#!/usr/bin/env python3
import os
import sys
import shutil

directory = sys.argv[1]

for root, dirs, files in os.walk(directory, topdown=False):
    for f in files:
        if f.startswith("."):
            shutil.move(os.path.join(root, f), os.path.join(root, f[1:]))
    for dr in dirs:
        if dr.startswith("."):
            shutil.move(os.path.join(root, dr), os.path.join(root, dr[1:]))

Como usar

  1. Copie o script em um arquivo vazio, salve-o como rename_dotted.py
  2. Abra um terminal e digite o comando:

    python3 /path/to/rename_dotted.py '<directory>'
    

    onde '<directory>' é o diretório, precisa estar entre aspas se incluir um ou mais espaços.

    Como sempre, tente primeiro uma amostra.

por Jacob Vlijm 24.05.2016 / 16:58