У меня есть папка /home/userA/folderA, эта папка содержит много файлов и папок и подпапок. Я хочу удалить все файлы с определенными именами data.txt и glass.txt. Я также хочу удалить любую папку с именем match со всем ее содержимым. Я был бы благодарен за любой совет, как это сделать.
И вариант verbose (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)
Скопируйте сценарий в пустой файл, установите каталог и, если хотите: необходимо отредактировать список файлов и папок, которые нужно удалить, сохранить это как reorg.py и запустить его командой:
python3 /path/to/reorg.py
Вы можете просто запустить следующую команду (будьте осторожны и дважды проверьте все, потому что это не обратимо!) Это удалит все файлы, в которых есть данные слова или стекла, которые являются .txt-файлами.
sudo rm -rf /home/userA/folderA/*data*.txt
sudo rm -rf /home/userA/folderA/*glass*.txt
Вы можете найти любую папку с именем match, используя командную локацию:
locate match
Как только вы найдете пути, просто выполните приведенную выше команду для всей папки
sudo rm -rf /path/to/match
Best, Lev