Я использую Ubuntu 9.10 (Karmic) и у меня есть каталог с множеством файлов, среди которых есть два файла:
./baer.jpg
./bär.jpg
Я хотел бы удалить bär.jpg
, но не могу. [118 ]
Если я наберу 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]
означает любой символ, кроме «е».