Удаление файлов и папок с определенным именем из определенного каталога

У меня есть папка /home/userA/folderA, эта папка содержит много файлов и папок и подпапок. Я хочу удалить все файлы с определенными именами data.txt и glass.txt. Я также хочу удалить любую папку с именем match со всем ее содержимым. Я был бы благодарен за любой совет, как это сделать.

1
задан 28 September 2014 в 21:52

2 ответа

И вариант 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
4
ответ дан 24 May 2018 в 03:19

Вы можете просто запустить следующую команду (будьте осторожны и дважды проверьте все, потому что это не обратимо!) Это удалит все файлы, в которых есть данные слова или стекла, которые являются .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

1
ответ дан 24 May 2018 в 03:19
  • 1
    Имейте в виду: найти не в режиме реального времени. Он использует базу данных, и если соответствующий файл еще не находится в нем, он не будет отображаться с помощью этой команды. – Rinzwind 28 September 2014 в 21:40
  • 2
    спасибо за Ваш ответ! в отношении ответа папки match, проблема в том, что я ожидаю более 100 папок с именем match в этой папке :) вот почему я прошу о простом решении :) – Tak 28 September 2014 в 21:41
  • 3
    Посмотрите нижеприведенное решение от Nathan по проблеме матча, это будет отлично! – levlaz 28 September 2014 в 21:48
  • 4
    Вы должны использовать только sudo, когда вы действительно это имеете в виду, и здесь нет необходимости. – evilsoup 29 September 2014 в 15:20

Другие вопросы по тегам:

Похожие вопросы: