LinuxForum.Fans
Тема

[Решено] Не удаляется файл

Автор: u__________ 39 сообщений 9488 просмотров
#20544

Помогите.
Файл не удаляется. После переноса в корзину - корзина не очищается. Имя файла 䫽��� ��ӫ�� � �����.tif ( в общем, вместо запятых - знаки вопроса) Пишет, что такого файла не существует
Что делать?
__________

Пост с решением

#20548

Переименовать и потом удалить

#20554
Hvzh написал:
Переименовать и потом удалить

Не переименовывается. Пишет - ошибка Dolphin - файл или папка 䫽��� ��ӫ�� � �����.tif не существует

#20558
Hvzh написал:
А из консоли?

пробовал rm 䫽��� ��ӫ�� � �����.tif
файл не удаляется
пишет:
rm: невозможно удалить `䫽���': Нет такого файла или каталога
rm: невозможно удалить `��ӫ��': Нет такого файла или каталога
rm: невозможно удалить `�': Нет такого файла или каталога
rm: невозможно удалить `�����.tif': Нет такого файла или каталога

#20560

Дядя Федор,
Я несколько раз сталкивался с такой фигней юникодной. Обычно спасало переименованием из Midnight Commander'а

#20564

Дядя Федор,
rm "䫽��� ��ӫ�� � �����.tif"
или
rm 䫽���\ ��ӫ�� \�\ �����.tif
кто пробелы экранировать будет за вас?

#20565
Aspedin написал:
Дядя Федор,
rm "䫽��� ��ӫ�� � �����.tif"
или
rm 䫽���\ ��ӫ�� \�\ �����.tif
кто пробелы экранировать будет за вас?

Ничего не понял?????

Сори, все понял НО

rm 䫽���/��ӫ��/�/�����.tif
rm: невозможно удалить `䫽���/��ӫ��/�/�����.tif': Нет такого файла или каталога

ХА-ХА РЕШЕНО!
Спасибо Всем и особенно Hvzh - натолкнул меня на мысль о другом файловом менеджере. У меня оказался gnome-commander, он то и помог удалить эту пакость.

#20573

Бесполезно. Тут сколько пробелы не экранируй - вопросики всё равно останутся. Имя файла не распознаётся.
Удалите его из mc. Он, я так понимаю, работает по-своему с файловой системой, возможно, ему не надо знать имя файла, чтобы его удалить...

А откуда у вас появился файл с таким чудным именем?

#20574

Aspedin,
Тебе тоже спасибо! Натолкнул на мысль об экранировании пробелов. Надо будет опробовать эту идею как только столкнусь с аналогичной проблемой

Flaming,
У меня они на прошлой реботе периодически появлялись при копировании файлов с UTF-именами в украинской кодировке с украинского сервера на российский :D

#20576

Дядя Федор, из корзины восстановить smile далее нужен mc smile
в терминале выполняем sudo mc или su потом mc и командером удаляем файл

#20579

Извращенный вариант: удалить файл по иноду :)

#20583
i2ks написал:
Извращенный вариант: удалить файл по иноду smile

Именно так, я думаю, и делает mc. Но тут проблема - как узнать, какому иноду принадлежит этот файл? :)
В общем, проще всего это сделать через mc.

#20584

renegat, i2ks, Flaming,
Орлы, проблема вроде как решена уже, темку прикройте :D

#20586

Flaming, ls -li , а так почитай Advanced Bash-Scripting Guide :)

#20588

i2ks, ммм, понятно. Именно так. (=
И, раз уж до этого дошли - как, собственно, удалить? У rm я такого параметра не нашёл... unlink, может, умеет?
В смысле, как удалить файл, зная его inode?

#20589

Hvzh, Тема актуальная, хотя я дал уже маунал где и что почитать, там подробно описано как удалять такие файлы, есть примеры - скрипты даже :)

Flaming, из Advanced Bash-Scripting Guide :Пример 12-3. Badname, удаление файлов в текущем каталоге, имена которых содержат недопустимые символы и пробелы.

#20591

i2ks, лана, будет время - почитаю =) ща не до того просто

#20592
text
#!/bin/bash
# idelete.sh: Удаление файла по номеру inode.

# Этот прием используется в тех случаях, когда имя файла начинается с недопустимого символа, #+ например, ? или -.

ARGCOUNT=1 # Имя файла должно быть передано в сценарий. E_WRONGARGS=70 E_FILE_NOT_EXIST=71 E_CHANGED_MIND=72

if [ $# -ne "$ARGCOUNT" ] then echo "Порядок использования: `basename $0` filename" exit $E_WRONGARGS fi

if [ ! -e "$1" ] then echo "Файл \""$1"\" не найден." exit $E_FILE_NOT_EXIST fi

inum=`ls -i | grep "$1" | awk '{print $1}'` # inum = номер inode (index node) файла # Каждый файл имеет свой inode, где хранится информация о физическом расположении файла.

echo; echo -n "Вы совершенно уверены в том, что желаете удалить \"$1\" (y/n)? " # Ключ '-v' в команде 'rm' тоже заставит команду вывести подобный запрос. read answer case "$answer" in [nN]) echo "Передумали?" exit $E_CHANGED_MIND ;; *) echo "Удаление файла \"$1\".";; esac

find . -inum $inum -exec rm {} \; echo "Файл "\"$1"\" удален!"

exit 0

#20594

Hvzh, источник укажи хотя бы :)

Войдите или зарегистрируйтесь, чтобы ответить.