У меня есть тысячи точечных файлов, папок и подпапок на внешнем жестком диске. Я хочу восстановить все изображения в этих папках. Я хочу отменить их все, чтобы легко перемещаться по этим фотографиям.
Я пытался переименовать папки, но это не представляется возможным.
Первый вопрос, который необходимо задать сами, состоит в том, если существует шанс столкновений имени. Другими словами; если там возможно существуют и скрытая версия и нескрытая версия того же каталога или файла в одном и том же каталоге.
Принимая дело не в этом, это - одна из ситуаций, которые необходимо переименовать от нижней части до вершины, так как Вы не можете переименовать (перемещают) файлы в папках, которые были просто переименованы; сценарий не будет больше находить их и повреждение.
Кроме того, при записи этого ответа, комментарий @Rinzwind просто открылся выше моей головы, упомянув, что нажатие Ctrl+H сделает все скрытые файлы и папки видимыми, который верен, конечно.
Если, тем не менее, требуется переименовать файлы и папки:
#!/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:]))
rename_dotted.py
Откройте терминал и введите команду:
python3 /path/to/rename_dotted.py '<directory>'
где '<directory>'
каталог, должен быть в кавычках, если он включает одни или несколько пробелов.
Как всегда, сначала примерьте образец.