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 тоже самое

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


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

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

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

Да, командой rm, используя экранирование и (для удобства) автодополнение.

Твоя проблема не была связана с тем, что у файла было такое имя. Я понимаю, что тебе кажется, что ты что-то понял. Но это иллюзия. После того, как почитаешь про FUSE, можно почитать про апофению и парейдолию — тоже полезно будет. Но сперва про FUSE всё же. Если ты всё-таки хочешь чему-то научиться и извлечь из этого треда какие-то выводы и пользу для себя, а не только поспорить, сам не понимая о чём, и повыставлять себя в глупом свете.

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

Твоя проблема была не в find.

Конкретно для find проблемы представляют имена файлов, содержащие перевод строки, например. Эту проблему решает использование \0 в качестве разделителя, да.

Но всё это не имеет никакого отношения к твоей изначальной проблеме с «неудаляемыми» файлами и каталогами, примонтированными FUSE.

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

Ладно, передам ей пусть читает про фузю и еще man unlink(2) и другие забавные штуки, приходит сюда здесь ей всегда будут рады и помогут. Потомуш то линукс это вам не мышкой по окошкам возить.

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

Давай повесели нас и расскажи как ты будешь удалять файлы

Кто в find будет делать автодополнение?

> touch $'  проверка  \n\n  .mp3'
> ls
'  проверка  '$'\n\n''  .mp3'
> find . -type f -printf %P | hexdump -C
00000000  20 20 d0 bf d1 80 d0 be  d0 b2 d0 b5 d1 80 d0 ba  |  ..............|
00000010  d0 b0 20 20 0a 0a 20 20  2e 6d 70 33              |..  ..  .mp3|
0000001c
> find . -type f -name \*\.mp3 -delete 
> ls

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

Что за хрень, рут не может удалить файлы в системе?

Ахтунг! Удаление файлов работает так не только на FUSE, но и на других фс. Ядру пофигу на файлы и команды рута. Оно работает с инодами. Если какая-то прога держит дескриптор открытым, а юзверь/рут удаляют файл связанный с дескриптором, дескриптор никуда не девается продолжая указывать на иноду. С точки зрения фс инода продолжает существовать, пока на неё есть хардлинки (запись в данных директории), или активные дескрипторы. Так, при «удалении» файла, удаляется запись о связанном имени в данных самой директории (то есть один из хардлинков), но дескрипторы продолжают жить, и инода файла никуда не девается, пока есть эти дескрипторы или другие хардлинки. Разница только в том, что FUSE для файлов таких «удалённых» фалов, на которые есть открытые дескрипторы оставляет псевдофайл .fuse_hidenXXXX, а другие фс удаляют хардлинк, но продолжают молча удерживать иноду файла и занятое ей пространство накопителя.

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

Прелестно. Точно приведу девку сюда, будешь ей эту дичь втирать, а меня оставит в покое. Скажу ей, хучего ты ко мне пристаешь, когда лучшие эксперты ЛОРА в твоем распоряжении.

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

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

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

  1. Ты узнал про FUSE, есть что почитать. Дальше можно почитать про устройство файловых систем в Линуксе в целом, если станет интересно.
  2. Ты случайно также узнал про перевод строки в файлах и find, а также про -print0 — это может пригодиться в будущем.
  3. Ты узнал, что создавая темы на форуме не надо выдумывать (или творчески «переводить») получаемый вывод. Прямая копипаста лучше всего.

По-моему, уже неплохо. Дальше уже от тебя зависит, воспользоваться этим, или спустить всё в унитаз.

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

Точно приведу девку сюда, будешь ей эту дичь втирать, а меня оставит в покое

Так приводи. Может ей это покажется не дичью, а интересными подробностями о работе ядра))

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

Я сначала подумал, что ты отвечаешь мне на предыдущее сообщение и слегка припух :-)

А так - да, спасибо за ответ.

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

Берешь и как Барт Симпсон пишешь пятьдесят раз от руки: «ДОТ-ФАЙЛЫ ПРИДУМАНЫ ДЛЯ ТОГО, ЧТОБЫ ЛАМЕРЫ ИХ НЕ УВИДЕЛИ.»

Потом начинаешь плак^W смеяться и уезжаешь вдаль на самока^W скейтборде.

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

fuse.gvfsd-fuse

Вспоминай, как монтировал. Лучше бы вручную через консоль. Не через gvfs. И в наутилусе выйди из каталога

upd. и прибей процессы tracker (ну или baloo, смотря что там у тебя)

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

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

В чём логика-то? Ты потом запаришься устранять последствия ошибки. Это всё равно что позволить водителю остановить машину, засунув палку прям в двигатель внутреннего сгорания.

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

На переносном диске были загруженные с торрента файлы, в именах которых бывают странные символы. Где в этом сообщении о том кто и когда их загружал и как они туда попали?

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

Удаление файлов работает так не только на FUSE, но и на других фс. Ядру пофигу на файлы и команды рута

WAT? Ядро выполняет команды рута. Но рут должен знать, что командовать. Сказано удалить файл - файл будет удален. То, что есть открытые декскрипторы - это уже другое дело. Их тоже можно удалить, прибив процесс, который их держит. Надо лишь его найти

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

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

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

Это ничем не отличается от того, что FUSE отказывает в операции рутовому /bin/rm. Это как раз тот случай, когда «твой клиент скажет ой ошибочка».

Права доступа дают больше прав относительно других пользователей, а не карт-бланш на забой системы. И, кстати, даже в таком виде рут — это проблема, а не решение.

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

Ядро выполняет команды рута.

Ядро в принципе не в курсе того, что какие-то команды вообще существуют. Оно предоставляет API в виде системных вызовов. А команды - артефакт командной оболочки.

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

всем похрену на твои открытые дескрипторы

Любой редактор правильный не держит дескриптор открытым, как и сетевой файл. После сохранения дескриптор тут же закрывается. Открытый дескриптор может быть у системного файла, у неправильно написанных программ.

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

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

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

Смонтировать на rw, да, это не всегда так легко, всё зависит от fs.

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

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

Ой нет, ой нет. Кажется вы букваря перевели и на том и остановились.
ЗЫ И на правах граманаци, ели вы неправильные буквари, слово «удолять» пишется немного по другому.

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

всем похрену на твои открытые дескрипторы

Это был ответ не на удаление файла с открытым дескриптором, а о запрете удаления системы на которой работает пользователь. Естественно система не должна давать удалить себя будь ты трижды рут над рутами, для этого есть загрузка из под другой системы и форматирование, а ломать себя будучи если разработчики понимают что пользователь системы не хочет сломать ОС, то они предотвратят эту возможность.

А процессы должны посыпаться сами

В ОС нет такой опции, чтобы процессы посыпались или система посыпалась. Перезагружайся в LiveCD и удаляй, если тебе система вдруг стала не нужна.

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

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

Судя по:

пока очнешься все твои файлы постирали давно другие клиенты.

Там вобще какой-то бойцовский сетевой клуб, где, чтобы что-то сохранить на сетевом диске, нужно быть быстрее и хитрее остальных. А ТС в этом соревновании читер, так как от root работает.

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

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

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

Смонтировать на rw, да, это не всегда так легко, всё зависит от fs.

Смонтировать на rw микросхему mask-ROM? Или диск CD-ROM может быть? Показывай способ, можно даже нелёгкий.

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

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

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

Смонтировать на rw, да, это не всегда так легко, всё зависит от fs.

Смонтировать на rw микросхему mask-ROM? Или диск CD-ROM может быть? Показывай способ, можно даже нелёгкий.

Дядь, не шлангуй в ответах на пост где уже всё сказано «всё зависит от fs», для альтернативно одаренных добавлю «и от девайса».

anc ★★★★★
()