Пакетное удаление?

Hilo

Хранитель порядка
Регистрация
31 Мар 2008
Сообщения
929
Реакции
600
Как пакетно в isp5 удалить несколько файлов по отсортированному мною списку? Речь идет о зараженных письмах (файлах) в нескольких папках на сервере. Может в isp5 есть плагин, где можно галочками указать какие файлы можно удалить (например как в любой почте)?
Нашел в интернете такой вариант, однако не вкурсе возможно его реализовать здесь или нет:
- Рекуривное удаление: rm -i $(cat my.txt)
 
В менеджере файлов там работает выделение по правилам виндового explorer. С шифтом - группа файлов выделяется, с Ctrl - поштучно.
И потом действуют групповые операции над выделенными файлами.
 
Н счет этого вкурсе, но файлов очень много и удалить необходимо непопорядку. Поэтому shift или ctrl конечно выход, но оень долгий. Есть способ быстрого удаления по списку?
 
Баш-скриптом вроде этого

Код:
for f in file1 file2 file3 file5
do
    if [  -f $f ]
    then
         rm "$f"
    fi
done

Для просмотра ссылки Войди или Зарегистрируйся

Или аналогичным php-скриптом

PHP:
$files = [
   'file1', 'file2'
];

foreach $files as $file {
   if(file_exists($file)) {
       unlink($file);
   }
}

Если список файлов в файле, то

$files = file('my-files.txt');
 
Последнее редактирование:
  • Нравится
Реакции: Hilo
Если файлы имеют какой то общий признак, то можно найти их через find. Например
find / -name '*.virus' > bad.txt
А потом уже удалить через rm
rm -i $(cat bad.txt)
 
  • Нравится
Реакции: Hilo
Для просмотра ссылки Войди или Зарегистрируйся, за bash и php спасибо. попробую если неполучится через rm.
Если файлы имеют какой то общий признак, то можно найти их через find. Например
find / -name '*.virus' > bad.txt
А потом уже удалить через rm
rm -i $(cat bad.txt)

По признакам уже нашел сформирвал .txt файл, отсортировал даже.
Команду ввожу такую же: rm -i $(cat /name.txt), только с указанием того, что он в корневой папке /
Возможно ошибка крылась именно в этом, либо надо было просто обновить, так как искомый файл все ещё оставался на сервере.
Вроде все сработало. Для интереса попробую ещё через bash и php скрипты, что предложил alex_me
 
Если файлы имеют какой то общий признак, то можно найти их через find. Например
find / -name '*.virus' > bad.txt
А потом уже удалить через rm
rm -i $(cat bad.txt)

зачем усложнять, когда find умеет запускать внешнюю команду:
find ./ -name "*.txt" -exec rm {} \;

второй вариант
find ./ - name "*.txt" -print |xargs -I {} rm {}
 
Назад
Сверху