LINUX.ORG.RU
ФорумTalks

Почему в файловых менеджерах Linux так ущербно реализована функция перемещения файлов?


1

2

Выделяем кучу больших файлов и каталогов с большими файлами. Делаем «Вырезать» (если файловый менеджер не имеет команды «Переместить»), переходим в другой каталог на ТОМ ЖЕ разделе. Выбираем «Вставить». И что мы получаем? Вместо мгновенного перемещения файлов (ну или почти мгновенного - если файлов совсем много, нужно время рекурсивно обойти все выбранные каталоги) этот процесс может растянутся на несколько часов (и в это время система, разумеется, будет подтормаживать из-за активного дискового I/O). Почему так происходит? Потому что какой-то альтернативно одарённый человек решил, что просто переместить файл средствами ФС некошерно - надо сначала скопировать файл, а потом удалить оригинал. Это можно понять, когда приёмник и источник на разных ФС - тут иначе никак, но зачем так делать, когда ФС одна и та же???

Так делает и Nautilus, и Dolphin, и даже Midnight Commander (на него я возлагал свои последние надежды). А вот команда mv (хоть рекурсивная на кучу каталогов с кучей файлов) выполняется практически мгновенно, но использовать её не всегда удобно.

Кто-нибудь, объясните мне, почему ни в одном файловом менеджере авторам не хватило ума поставить простое условие «Если (ЦелеваяФс == ИсходнаяФс) То ПереместитьФайл; Иначе СкопироватьФайл; УдалитьФайл; Конец». Не верю, что это настолько сложно (mv же делает как-то), даже скорее всего есть готовая функция libc/системный вызов ядра, который сам решает копировать или перемещать.

★★★★★

Последнее исправление: KivApple (всего исправлений: 1)

А вот команда mv (хоть рекурсивная на кучу каталогов с кучей файлов) выполняется практически мгновенно, но использовать её не всегда удобно.

Ты почти прозрел.

olibjerd ★★★★★
()

Не вижу патча для реализации желаемой фичи.

vurdalak ★★★★★
()

SpaceFM - 3 гига (200 директорий, около 4000 файлов) на одном разделе моментально вырезает/вставляет.

science ★★☆
()

Толи меня подводит память, толи в меня всегда перемешалось мгновенно, когда на одном разделе.

quowah
()

Никогда такого не замечал. Если на одном разделе, то переносит мгновенно, что Наутилус, что Тунар.

Shlyapa ★★
()
Ответ на: комментарий от abraziv_whiskey

Вот сейчас сделал F6 на каталог с суммарным размером файлов около 20 гигабайт (образы дисков виртуальных машин) и наблюдаю как неторопливо ползёт индикатор прогресса. Система Arch Linux со всеми последними апдейтами.

KivApple ★★★★★
() автор топика

Не воспроизводится, обратитесь в техподдержку.

quiet_readonly ★★★★
()

Dolphin, ArchLinux, УМВР, чини руки.

Kosyak ★★★★
()
Ответ на: комментарий от winddos

Мне прислать видео, как я копирую файл на N ГБ и он копируется в течении нескольких десятков минут? Боюсь не получится - система становится неюзабельна на время копирования.

KivApple ★★★★★
() автор топика

Caja, без проблем. Рискну предположить, что используешь какую-то нестандартную файловую систему.

bubblecore ★★★★
()
Ответ на: комментарий от KivApple

Мало ли какие у тебя арчепроблемы. У меня, что файлы, что директории перемещаются моментально в пределах одной ФС.
Nautilus 3.4.2

winddos ★★★
()
Последнее исправление: winddos (всего исправлений: 1)

Либо не тот раздел, либо 4.2.

Axon ★★★★★
()
Ответ на: комментарий от KivApple

Мне прислать видео, как я копирую файл на N ГБ

Так вы копируете, или перемещаете? Пора бы определиться.

Axon ★★★★★
()

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

Мужик, я не хочу тебе огорчать... но, похоже, это только у тебя одного так. И не стоило сразу делать вывод, что если у тебя что-то работает так, что тебе не нравится, это «во всём линуксе реализовано плохо» :)

Alve ★★★★★
()

Использую ranger, если mv не удобен в каком-то случае - такого не видел.

Spirit_of_Stallman ★★★
()

для начала сообщи фс свою и другие технические данные...

ihappy
()
Ответ на: комментарий от KivApple

Прозреваю кривые руки и попадание мышкой не по тому пункту в меню. Use Ctrl-X/Ctrl-V, Luke.

Axon ★★★★★
()

Nautilus: не воспроизводится, Thunar: не воспроизводится. ТС -ТЛиД.

Polugnom ★★★★★
()

thunar, pcmanfm/stuurman — не воспроизводится. Иди сдавай руки по гарантии, тебе достались бракованные.

geekless ★★
()

Моргнуть не успеваю как оно переносит, причем нажимаю cut и оно делает cut. Dolphin, arch.

Кажется мне вброс этот неудачен.

unt1tled ★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Смонтированные ФС: http://pastebin.com/USaUFtrA

Видео начала процесса копирования (видно как файлы копируются отнюдь не мгновенно): https://dl.dropboxusercontent.com/u/17412153/VID_20130519_192047.m4v

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)

Потому что какой-то альтернативно одарённый человек решил, что просто переместить файл средствами ФС некошерно - надо сначала скопировать файл, а потом удалить оригинал.

Только что вырезал файл 7Gb и мгновенно вставил в другую директорию без всякого копирования. Наутилус 3.6.3, ext4. ЧЯДНТ?

Deleted
()

Попробовал 100гиговую директорию (около 100000 файлов, ext4, lvm) - mc, konqueror воспроизвести проблему не смогли. Ты точно линукс с чем другим не перепутал?

redgremlin ★★★★★
()
Ответ на: комментарий от RedNikifor

Боюсь, что из-за загрузки дисковой подсистемы программа записи не смогла бы вовремя скидывать видео на диск.

KivApple ★★★★★
() автор топика

Тред не читал

Только что в Долфине выделил три каталога с фильмами и нажал «Верезать (ctrl + x)», затем ПКМ на домашнем каталоге «Вставить (ctrl + v)». Подождал около секунды. Да и тормозов особых от операций I/O не припомню.

Даже интересно стало, какой дистрибутив у ТС (а может виндоус?)

spectr00 ★★★
()
Ответ на: комментарий от geekless

В чём может быть дело? Свежеустановленный арч с KDE (решил снова попробовать) + тюнинг sysctl.conf для защиты от 12309 по ЛОРвики. Никаких других настроек (кроме настроек DE) не производилось.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Попробуй ливсд кубунты чтоли. Будет тот же глюк - проблема в винте. Не будет - в руках/арче.

bubblecore ★★★★
()
Ответ на: комментарий от KivApple

Может ты, всё таки, на другой раздел таки перемещаешь, просто не заметил, ибо через симлинк? Ну или, как выше предположили, один раздел внутрь другого примонтировал?

RedNikifor ★★
()
Последнее исправление: RedNikifor (всего исправлений: 1)
Ответ на: комментарий от RedNikifor

По выводу mount можешь сам убедиться, что действия происходят в рамках одного раздела (на видео видны пути файлов). Симлинков внутри этого каталога точно нет. Ну и да, mv то мгновенно отрабатывает.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)

Кто-нибудь, объясните мне, почему ни в одном файловом менеджере авторам не хватило ума поставить простое условие «Если (ЦелеваяФс == ИсходнаяФс) То ПереместитьФайл; Иначе СкопироватьФайл; УдалитьФайл; Конец».

Хочешь сенсацию? На самом деле «перемещение» это никакое не перемещение, а, условно говоря смена указателя на данные. Физически, данные остаются на тех же секторах. Естественно если ты именно «перемещаешь» а не копируешь + все в пределах 1го раздела.

comp00 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.