Как я удаляю файл, названный “°” в ударе

Утилита, о которой можно думать, namei команда. Согласно странице руководства:

Namei использует свои аргументы в качестве путей к любому типу файла Unix (символьные ссылки, файлы, каталоги, и т.д). Namei затем следует за каждым путем, пока терминальная точка не найдена (файл, каталог, символьное устройство, и т.д.). Если это находит символьную ссылку, мы показываем ссылку и запускаемся следующий за нею, располагая вывод с отступом для показа контекста.

Вывод, которого Вы требуете, может быть получен следующим образом:

$ namei -l /usr/src/linux-headers-2.6.35-22/include/
f: /usr/src/linux-headers-2.6.35-22/include/
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxrwsr-x root src  src
drwxr-xr-x root root linux-headers-2.6.35-22
drwxr-xr-x root root include

namei команда является частью linux-util-ng пакета программного обеспечения. Дополнительную информацию см. в странице руководства.

6
05.02.2011, 17:52
3 ответа

Как насчет?

rm -i ?

Я думаю, что это должно работать...

12
27.01.2020, 20:20
  • 1
    Для дальнейшего объяснения, -i означает "интерактивный". Это предложит Вам каждый файл соответствия прежде, чем удалить его. –  bahamat 05.02.2011, 23:01
  • 2
    , но я должен был заменить ? с * заставить его работать. rm: cannot remove '?': No such file or directory. Что я пропускаю? –  Oskar 06.02.2011, 14:42
  • 3
    Возможно, Ваша локаль является неправильной и таким образом, Ваша оболочка рассматривает символ градуса/кольца как два символа, а не один. Снова, что делает locale -a печать? –  Mikel 06.02.2011, 22:15
  • 4
    На самом деле, вывод locale без -a было бы лучше. –  Mikel 07.02.2011, 00:25

Если существует много соответствий к использованию подстановочного знака с комнатой как rm -i ?, можно всегда удалять его inode числом вместо этого:

ls -i
find . -inum <inode> -ok rm '{}' \;

Где <inode> inode число от ls -i, который перечисляет все inode числа файлов в текущем каталоге.

10
27.01.2020, 20:20
  • 1
    , о, это прохладно. –  gabe. 08.02.2011, 00:28
  • 2
    , Это - лучший ответ, так как он дает дескриптор самому файлу. Кроме того, я никогда не знал о - хорошо отмечают! –  anthonybell 22.08.2016, 19:59

rm -i ? ответ прекрасен.

Это также работало бы:

rm [^a-z]

как был бы

rm [[:punct:]]

И относительно того, почему это возвращается к запуску строки, как Вы вводите ˚? Возможно, вход интерпретируется как Ctrl+A или некоторый другой ярлык, который используется оболочкой для движения в запуск строки.

Есть ли установка для установки кодирования или набора символов к utf-8 в терминальном приложении? Что это печатает, если Вы работаете locale в терминальном сеансе?


И как Вы создавали файл? Возможно, можно ли использовать похожий метод удалить его?

2
27.01.2020, 20:20

Теги

Похожие вопросы