Чрезвычайно медленная человечность 16.04 мусора при использовании для больших файлов

Я - ре, пишущий вопрос избежать беспорядка... На Ubuntu 16.04 я должен был удалить приблизительно 6 500 файлов. 50% были НЕОБРАБОТАННЫМИ изображениями, и 50% были связаны.XML файлы. В общей сложности 72 ГБ. Я использую Samsung Evo SSD 500 ГБ. Я на самом деле переместил файлы в сыпь сначала и затем удалил их. Я заметил, что просто перемещение файлов к мусору использовало всю мою RAM (8 ГБ) и всю мою ПОДКАЧКУ (8 ГБ). Существует ли установка, которая может заставить Мусор в Ubuntu вести себя более эффективно? Я знаю, что могу вызвать, удаляют файлы и обходят мусор в целом, но это побеждает цель мусора полностью. Или это поведение ожидается?

1
задан 13 November 2016 в 02:04

2 ответа

Это (была) очень раздражающая ошибка в Наутилусе (пакет gvfs):

, Но всего 3 дня назад эта ошибка была исправлена и версия фиксации, добавленная к репозиториям.

28.08.2017 : Эта ошибка была исправлена в пакете gvfs - 1.28.2-1ubuntu1~16.04.2

Выполнение sudo apt-get update && sudo apt-get upgrade для обновления к новой версии.

0
ответ дан 8 December 2019 в 07:52

<забастовка> Это поведение ожидается, потому что при удалении чего-то с помощью наутилуса это просто перемещает его в мусор, как Вы знаете.

Исправление: Это не ожидаемое поведение. Как BB1 указывает, 'перемещение' файла к мусору на самом деле не перемещает его никуда, он просто обновляет, это - inode для отражения местоположения.

я предположил бы, что Ваш поршень едят, потому что требуется намного больше системных ресурсов, чтобы удалить (или сделать что-либо с) набор маленьких файлов, чем это делает для удаления одного большего файла.

поведение Мусора , кажется, не очень настраиваемо. Нет очень что быть сделанным об этом, к сожалению. Вы могли изучить trash-cli , но я не знаю, было ли это более эффективно или нет.

, Когда я должен удалить набор маленьких файлов, я всегда делаю это от оболочки, потому что это быстрее. Даже затем я встретился с ошибкой при попытке удалить почти 100k файл, что-то вроде "комнаты: список аргументов слишком долго". Для обхождения этого я выполнил комнату в для цикла и выполнил итерации через файлы как:

for letter in {a..z};do rm -f $letter*;done

, Если Вы хотели эмулировать функциональность мусора в оболочке, Вы могли бы попробовать что-то вроде этого:

#!/bin/bash
## pseudotrash
elsewhere=/media/$USER/some-external-drive/pseudo-trash
for file in "$@";do
  cp $file $elsewhere
  if [ "$?" -eq "0" ] ; then
    rm -f $file && echo "Backed up and deleted $file"||\
    (echo "Could not delete $file , aborting";exit 1)
  else
    echo "Could not copy $file,aborting" ;exit 1
  fi
done

И, чем выполненный это как:

pseudotrash `ls`

или

pseudotrash 'file1 file2 file3'

я надеюсь, что это отвечает на Ваш вопрос и предлагает некоторое понимание, чтобы помочь решить Вашу проблему.

0
ответ дан 8 December 2019 в 07:52

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

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