Вообще, про эту проблему я уже давно знаю, однако только сейчас докопался до неё, ведь проблема есть, а толкового решения нет, собственно, обычное явление для Linux.
Так вот, допустим есть человек, который ещё не пробовал линуксы, даже не слышал про всё линуксоидное мракобесие, и такой человек решился перейти на какой-нибудь дистрибутив оставив Windows в прошлом.
Сразу может даже всё работать, ведь линуксы любят прихорашивать специально ради таких новичков, чтобы всё выглядело хорошо и прекрасно, и тут человеку понадобилось скопировать файлы, типичная задача, что может пойти не так? Да банально процесс может занять очень много времени, которого может не быть у человека, например нужно уходить по делам, а систему оставлять включенной не вариант:
Любой нормальный человек (пользователь Windows), со спокойно душой прервёт процесс, а потом просто ещё раз скопирует, и даст команду "пропустить существующие элементы", ведь все прекрасно знают, что Windows удаляет файлы, копирование которых не было завершено должным образом, это не только логичное поведение операционной системы, но и правильное.
Однако что происходит в Linux если прервать процесс копирования файла? Правильно, незавершённый файл так и останется повреждённым лежать в конечной папке, будет терпеливо ждать разгневанного пользователя, который обнаружит проблему именно тогда, когда исходный файл будет недоступен, а незавершённую копию просто невозможно использовать:
И хорошо если файл копируется один единственный, его можно сразу же удалить вручную после отмены копирования, однако что если файлов сотни тысяч, а весят они 140 ГиБ? Любой нормальный человек даст команду "пропустить существующие файлы", однако это будет означать и то, что "битый" файл тоже будет пропущен, а это уже паршивая ситуация, особенно если пользователь о ней не догадывается:
Как думаете, это проблема только моего дистрибутива Chimbalix? Наверняка фанаты Linux так и возразят, мол у них всё прекрасно, это только у меня всё не так, дистрибутив не дистрибутив, руки неправильные, мозги нехорошие и т.п. оправдания.
Однако есть факты того, что это характерная для Linux проблема, причём люди с ней сталкивались аж в бородатом 2010 году!
Да и в 2019 году тоже об этой проблеме удалось найти записи, что не удивительно, наверное луна на землю упадёт если в Linux хоть что-то сделают не через задницу:
Так вот, сразу же развею миф, что проблема "битых" файлов при отмене копирования может зависеть от файловой системы, мол, это не линукс говно, это руки кривые и файловая система неправильная!
Сделал я значит 4 раздела на жёстком диске специально для тестов, файловые системы EXT4, BTRFS, NTFS и EXFAT, думаю уже все догадались что я собираюсь сделать:
Будем копировать файл размером ~2 ГиБ и прерывать копирование:
Окей, а что насчёт других дистрибутивов? Начнём с Ubuntu 22.04 LTS, та самая мерзкая Ubuntu, принуждающая к обновлениям, даже без доступа к сети назойливо под руки выбрасывает предложения "обновить дистрибутив", и этому мерзкому дистрибутиву абсолютно всё равно, что пользователь прямо сейчас работает с командой, которая способна уничтожить данные при любом неосторожном движении:
Для проверки других дистрибутивов будет использован тестовый файл размером 4 ГиБ сотканный из "/dev/urandom", именно его буду копировать, а потом прерывать процесс:
Что и требовалось доказать, копирование файла нормально прервано, но в конечной папке остался битый кусок мусора, что рано или поздно может доставить очень много проблем, если это будет один из сотни тысяч файлов необходимых для работы какого-либо приложения, или что ещё хуже, очень важный документ, оригинал которого больше недоступен:
Далее Linux Mint 21 Cinnamon, вдруг проблемы не будет? Увы, но проблема есть, огрызок остался на месте со всеми вытекающими последствиями для пользователей привыкших к нормальной ОС, которая чистит за собой такие "битые хвосты":
Что там с Linux Mint 21 Mate... Да всё то же самое, проблема есть и процветает:
Теперь Manjaro 21 Xfce, тут у меня уже есть тестовый файл, так что не будем заново создавать, и проблема само собой присутствует, огрызок никуда не пропал после отмены копирования:
Теперь EndeavourOS 22, ничего нового, та же проблема:
Окей, а есть ли дистрибутивы, которые не подвержены проблеме "битых хвостов"? Конечно есть, дистрибутивы с KDE оболочкой обычно удаляют за собой мусор в таких случаях, однако я не любитель KDE, слишком уж он перегруженный и тормозной, лучше уж Windows 11, чем Linux с KDE в этом плане...
Особенно меня бесит KDE своими невнятными настройками композитора, который непонятно отключен или просто "настроен", но невнятность настроек это уже другая история.
Что тут сказать, проблема копирования файлов в Linux есть, и она весьма серьёзная.
А ведь пользователи Windows даже не задумываются про ручную чистку "битых хвостов" когда отменяют копирование файла, а для Linux эти танцы с бубном обязательное действие, если конечно пользователю не нужен мусор вместо файлов...
Как эту проблему я решу в своём дистрибутиве, и решу ли вообще? Пока без понятия, но точно не переходом на KDE. Причем отмечу очень забавный факт, если включить временные файлы при копировании в настройках Thunar, то эта проблема в принципе решается:
И если прервать копирование при работе с временным файлом, то такой файл автоматически удаляется:
Казалось бы, вот решение! Но не всё так просто, если бы линуксы не делали через задницу, они давно заменили бы Windows по всему миру, но этого не произошло до сих пор (2024 год), увы. Беда в том, что платить за это решение приходится производительностью и проблемами с именами файлов, особенно при копировании десятков тысяч файлов, особенно если пользователь будет находиться в этом же каталоге, и в качестве файлов будут изображения заставляющие постоянно срабатывать линуксоидный "Thumbnailer".
Telegram-Chanel TimeWeb Donate