Я использую (Кармическую) Ubuntu 9.10, и у меня есть каталог со многими файлами среди них эти два файла:
./baer.jpg
./bär.jpg
Я хотел бы удалить bär.jpg
но я не могу.
Если я ввожу rm b
и хит TAB
, это показывает мне оба файла, если я добавляю ä
и хит TAB
, ничто не отображено.
Что должно быть сделано для удаления bär.jpg
?
Удаление родительской папки не является решением для меня, поскольку существует много файлов в этом каталоге, которые используются продуктивной средой.
Я только что узнал, как удалять такие файлы с помощью специальных символов:
cd <directory with that file>
ls -ali
Удалите файл с помощью идентификатора inode:
find . -inum <inode ID of your file> -exec rm -i {} \;
Это отлично сработало для моей проблемы. Надеюсь, это поможет!
Ну, вы можете попробовать использовать сопоставление через grep
, чтобы удалить файл, если это один проблемный файл.
neal@dsadsa:~$ touch junk_ä_deleteme
neal@dsadsa:~$ ls | grep junk | grep deleteme | xargs rm
Здесь я создаю файл с именем junk_ä_deleteme
. Я удаляю его позже, сопоставляя символы до ("мусор") и после ("deleteme") забавного символа. Этот подход не очень хорош, но если это один файл, он может работать.
Возможно, лучшим решением было бы сформировать регулярное выражение, соответствующее вашему файлу, и затем передать это имя файла по rm
.
Вы можете использовать подстановочные знаки bash с
rm b?r.jpg
, где ?
обозначает ровно один символ. Альтернатива (если оба имени файла имеют одинаковую длину) будет
rm b[!e]r.jpg
, где [!e]
означает любой символ, кроме «е».