LINUX.ORG.RU
ФорумAdmin

Не могу удалить файлы, хелп

 


0

2

Есть очень много папочек внутри которых с файлами типа .fuse_hiddenхххххххххххххх. Как все нафиг это удалить вместе с папочками начиная с корня?

rm -rf /path пишет «непустые папки удолить не могу»

find /path -type f -name «.fuse*» -exec rm -rv {} ; показывает все файлы, ошибок нет, но файлы не удаляет

find /path -type f -name «.fuse*» -delete тоже самое

папки чужие, поэтому все команды запускаю от рута


Ответ на: комментарий от anonymous

rm (GNU coreutils) 9.4 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Written by Paul Rubin, David MacKenzie, Richard M. Stallman, and Jim Meyering.

На расте?

Lusine
() автор топика

Вы хоть пробовали погуглить, что значит файл с таким именем?

Завтра что, будете спрашивать, как кильнуть зомби процесс?

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

sudo lsof /var/run/media/10800/0E14EF8614EF6F61/sheeps/Sublime\ Frequencies/[2013\ ·\ SF078]\ The\ Crying\ Princess/*

sudo: lsof: command not found

Я еще плдумал,что файлов очень много, там их просто дохрена.

Lusine
() автор топика

Твой /path смонтирован в fuse? fuse вообще может себя вести не так как надо и отказываться выполнять действия которые по логике работы фс должны быть доступны. fuse то не настоящая фс, это её эмулятор в fuse-проге которая юзерспейсная и правила доступов может не уважать, в т.ч. игнорировать что ты рут.

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

Да похрену как он смонтирован, другие папочки стирает без вопросов, только что проверил. И глупость это делать файлуху, в которой нельзя стирать файлы.

Lusine
() автор топика
Ответ на: комментарий от Lusine

Нет не похрен. Когда ты щлёшь любой запрос в fuse - он на самом деле отправляется всего лишь в запущеную тобой же ранее прогу, эту fuse создавшую. И как этот запрос обрабатывать - полностью на её усмотрение. Да, нормальные fuse-монтировщики стараются изображать правильную фс (впрочем, не всегда успешно), но теоретически никто им не мешает игнорировать что угодно и отдавать рандомные коды ошибок, или вообще выполнять не те действия, которые ты запрашивал, а какие-то другие.

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

Я бы на твоём месте всё-таки думал не о том, как их стереть (про это в мане выше написано), а кто у тебя на диске занимается подозрительной активностью - а то вдруг вирусы. Для этого надо lsof установить.

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

Ты ман так и не прочитал? Эти файлы - fuse-ntfs-костыль для обозначения занятых прогами недоудалённых файлов. Установи lsof и выясни. И ещё раз повторю - кодам ошибок из fuse доверять стоит с осторожностью.

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

Можно попробовать

lsof | grep -F deleted | grep -v -F ' /memfd:'
и пытаться в выводе (он наверно не сильно длинный будет) найти что-то связанное с теми путями.

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

Прими валерианы, сделай 10 вдохов, затем внимательно и осознанно прочитай, что такое FUSE. Хоть в мане, хоть в википедии, хоть у LLM спроси — без разницы. Только после того, как ты осознаешь, что у проблема не в «чужих папочках и мамочках», а в том, что у тебя что-то примонтировано при помощи FUSE, и надо не тыкаться как слепой котёнок и пытаться «ффсё удолить!», а просто отмонтировать, ты сможешь перестать заниматься ерундой и начать решать проблему.

Ну и не надо врать о выводе, пожалуйста. rm не может писать вот такой херни:

непустые папки удолить не могу

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

Дооо. И как на отмонтированной фс удалить папочки? Давай расскажи мудрый гуру.

rm -rf /var/…..

rm: cannot remove ’/var/….: Directory not empty

«непустые папки удалить не могу» неправильно перевел? Ну извините.

Lusine
() автор топика
Ответ на: комментарий от Lusine

Тебе не нужно удалять ни папочек ни мамочек. Они у тебя существуют только потому что при помощи FUSE примонтирована ФС или псевдо-ФС.

Твоя реальная проблема решается не при помощи rm, а при помощи завершения процесса, который тебе их монтирует, ну или при помощи umount.

Ещё раз: тебе надо перестать биться со всё большим и большим остервенением в запертую чугунную дверь, а:

  1. Прийти в расслабленное состояние, способное воспринимать новую информацию. Это главный и самый необходимый шаг, без которого ничего не получится.
  2. Перестать толдычить об удалении папочек и мамочек. Впрочем, первый пункт в этом поможет.
  3. Прочитать наконец про FUSE и осознать, что это.
  4. Отмонтировать ФС (возможно, прибив сперва ненужный тебе процесс), тем самым избавившись от незванных папочек, дяденек и прочих родствеников.

Без первого (и следующего из него второго) пункта всё бесполезно — ты будешь продолжать случайные бессмысленные действия.


P.S.

«непустые папки удалить не могу» неправильно перевел? Ну извините.

Извиняю. Тебе лучше вообще ничего не переводить, а копипастить как есть. Да и в принципе это правильный путь, когда нужна помощь.

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

это не «файлы в системе»

И чо? Файлы теперь удалять нельзя?

И ничо. Ты читать и понимать написанное умеешь?

Dimez ★★★★★
()

добавить в find -print0 | xargs -0 rm -rf

не, пока не готов на десктоп

Lusine
() автор топика
Ответ на: комментарий от Lusine

Ну кстати, перезагрузка действительно поможет. Я специально не стал этого писать, надеясь всё же на то, что у тебя таки удастся чему-то научиться, а не просто решить обойти проблему. Но, видимо, не сегодня.

Если ты употреблял алкоголь или какие-то психоактивные вещества, то поспи просто, утром перечитаешь этот тред, и всё прояснится, утром отмонтируешь. Сегодня, похоже, от затыка с «хачю всё удалять, нихачю ничего воспринимать» никуда не деться.

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

Q: What’s meaning of -print0 A: From man find: «-print0 True; print the full file name on the standard output, followed by a null character (instead of the newline character that -print uses). This allows file names that contain newlines or other types of white space to be correctly interpreted by programs that process the find output. This option corresponds to the -0 option of xargs.» In this case xargs is processing the find output and the print0 insures that it correctly processes even files named with garbage like a newline character."

Lusine
() автор топика
Ответ на: комментарий от Lusine

А раскроешь в конце смысл спектакля для непонятливых (это для меня)? А то в треде про точность операций с плавающей запятой ты оставлял себе крошечный шанс на осмысленность такой упёртости. А тут.. ускользает.

anonymous
()
Ответ на: комментарий от Lusine

Я трезв как молодая монашка

Это грустно, когда по-трезвой такие ступоры. Но спишем на единичное помешательство.

как помогла бы перезагрузка если проблема была в именах файлов?

Проблема не была в именах файлов. Жаль, что ты так ничего и не понял. Впрочем, сейчас уже тем более бесполезно что-то пытаться объяснить.

Хотя… Может теперь, ктогда ты наконец сумел, как тебе кажется, «ффсё удолить», ты сможешь переключиться с навязчивой идеи об удалении на что-то ещё, и таки почитаешь про FUSE.

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

«всё есть файл». А файл можно удалить

Отсутствует прямая логическая связь. Простой контр-пример: ФС физически только для чтения.

anonymous
()
Ответ на: комментарий от Lusine

как помогла бы перезагрузка если проблема была в именах файлов?

Завершился бы процесс, который их сделал. А какая проблема была в именах файлов?

Aceler ★★★★★
()

Ох и жирнота потекла с экрана, пойду клаву с шампунькой отмывать.

P. S. RTFM Luke!

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

У рута пермишены не проверяются, поэтому он должен иметь право удолять любой файл в системе. А процессы должны посыпаться сами, с ошибкой io/error. Это идеология юникса, зачем вся эта хрень с фузе мне непонятно. Похоже это были загрузки с торрентов, там все что угодно может быть в именах, включая пробелы, табы и коды \x10\x12.

Lusine
() автор топика
Ответ на: комментарий от Lusine

У рута пермишены не проверяются, поэтому он должен иметь право удолять любой файл в системе.

Открой для себя chattr +i, посмотрим, где эта идеология окажется.

А процессы должны посыпаться сами, с ошибкой io/error.

Вообще-то нет. Попробуй начать качать файл одной программой и после этого удалить его другой программой, пока он всё ещё качается. Тебя ждёт сюрприз.

Но в других ОС поведение блокировок другое, да и мало ли какое поведение потребуется программисту, поэтому в FUSE был добавлен такой вот хитрый механизм неудаляемых файлов.

Похоже это были загрузки с торрентов, там все что угодно может быть в именах, включая пробелы, табы и коды \x10\x12.

Понятно, спасибо.

Если кто-то набредёт в эту тему — чтобы пропали файлы .fuse-….. нужно завершить процесс их создавший, чтобы он освободил файлы.

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

А процессы должны посыпаться сами, с ошибкой io/error. Это идеология юникса

Вы заблуждаетесь. В «идеологии юникса» и операции «удаленя» как таковой нет. Есть операция «unlink», после которой данные файла всё ещё сохраняются до тех пор, пока все процессы не освободят его дескрипторы.

А почему эта операция «unlink» не выполняется, вам уже верно ответили. Многократно.

anonymous
()
Ответ на: комментарий от CrX

Давай повесели нас и расскажи как ты будешь удалять файлы с именами типа \0x20file(1)(1)(1)\x20\x20\x20\x20 \x20\x20\x20 \x20\x20\x20….songs(\tabмой любимый песенка про мишку//////)

Командой rm?

Lusine
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария