[Решено] Не удаляется файл
Переименовать и потом удалить
Переименовать и потом удалить
Не переименовывается. Пишет - ошибка Dolphin - файл или папка 䫽��� ��ӫ�� � �����.tif не существует
А из консоли?
А из консоли?
пробовал rm 䫽��� ��ӫ�� � �����.tif
файл не удаляется
пишет:
rm: невозможно удалить `䫽���': Нет такого файла или каталога
rm: невозможно удалить `��ӫ��': Нет такого файла или каталога
rm: невозможно удалить `�': Нет такого файла или каталога
rm: невозможно удалить `�����.tif': Нет такого файла или каталога
Дядя Федор,
Я несколько раз сталкивался с такой фигней юникодной. Обычно спасало переименованием из Midnight Commander'а
Дядя Федор,
rm "䫽��� ��ӫ�� � �����.tif"
или
rm 䫽���\ ��ӫ�� \�\ �����.tif
кто пробелы экранировать будет за вас?
Дядя Федор,
rm "䫽��� ��ӫ�� � �����.tif"
или
rm 䫽���\ ��ӫ�� \�\ �����.tif
кто пробелы экранировать будет за вас?
Ничего не понял?????
Сори, все понял НО
rm 䫽���/��ӫ��/�/�����.tif
rm: невозможно удалить `䫽���/��ӫ��/�/�����.tif': Нет такого файла или каталога
ХА-ХА РЕШЕНО!
Спасибо Всем и особенно Hvzh - натолкнул меня на мысль о другом файловом менеджере. У меня оказался gnome-commander, он то и помог удалить эту пакость.
Бесполезно. Тут сколько пробелы не экранируй - вопросики всё равно останутся. Имя файла не распознаётся.
Удалите его из mc. Он, я так понимаю, работает по-своему с файловой системой, возможно, ему не надо знать имя файла, чтобы его удалить...
А откуда у вас появился файл с таким чудным именем?
Aspedin,
Тебе тоже спасибо! Натолкнул на мысль об экранировании пробелов. Надо будет опробовать эту идею как только столкнусь с аналогичной проблемой
Flaming,
У меня они на прошлой реботе периодически появлялись при копировании файлов с UTF-именами в украинской кодировке с украинского сервера на российский :D
Дядя Федор, из корзины восстановить smile далее нужен mc smile
в терминале выполняем sudo mc или su потом mc и командером удаляем файл
Извращенный вариант: удалить файл по иноду :)
Извращенный вариант: удалить файл по иноду smile
Именно так, я думаю, и делает mc. Но тут проблема - как узнать, какому иноду принадлежит этот файл? :)
В общем, проще всего это сделать через mc.
renegat, i2ks, Flaming,
Орлы, проблема вроде как решена уже, темку прикройте :D
Flaming, ls -li , а так почитай Advanced Bash-Scripting Guide :)
i2ks, ммм, понятно. Именно так. (=
И, раз уж до этого дошли - как, собственно, удалить? У rm я такого параметра не нашёл... unlink, может, умеет?
В смысле, как удалить файл, зная его inode?
Hvzh, Тема актуальная, хотя я дал уже маунал где и что почитать, там подробно описано как удалять такие файлы, есть примеры - скрипты даже :)
Flaming, из Advanced Bash-Scripting Guide :Пример 12-3. Badname, удаление файлов в текущем каталоге, имена которых содержат недопустимые символы и пробелы.
i2ks, лана, будет время - почитаю =) ща не до того просто
#!/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
Hvzh, источник укажи хотя бы :)