Укажите номер inode команде find
и попросите ее выполнить команду stat
для файла:
find . -inum #### -exec stat -c "%h" {} \;
В этом примечании содержится рекомендация удалить текст , если он считается особым .
Предлагаемый набор исправлений содержится в примечании :0000998 .
В примечании также сообщается, что изменение было одобрено 30 августа 2012 года.
Я не могу сказать, почему оно до сих пор используется в настоящей формулировке .
Я думаю, вы могли бы забыть об этих словах.
Вecho "\abc\$\\"
(например )входят два шага.
Во-первых, поскольку строковый аргумент для echo
заключен в двойные -кавычки, оболочка будет что-то делать с экранированными символами внутри.
В случае "\abc\$\\"
он преобразует его в \abc$\
перед передачей echo
. \a
останется без изменений, поскольку a
не является одним из «специальных» символов. Другие экранированные символы будут буквальными , что означает, что они больше не имеют особого значения в оболочке ($
не запускает раскрытие, обратная косая черта не экранирует следующий символ и т. д. )Обратите внимание, что $
в конце строки в двойных кавычках по-прежнему является "особым", так как могло бы ввести расширение, если бы строка не заканчивалась сразу после него. Две строки "a$"
и "a\$"
идентичны, так как $
в первой строке ни к чему не применяется.
Затем echo
может выполнить собственную интерпретацию этого строкового аргумента. Некоторые реализации echo
рассматривали бы \a
как означающее, например, "символ колокольчика".
Я также думаю, что здесь вы неправильно понимаете стандарт. Оценка обратной косой черты, за которой следует один из специальных символов, удалит обратную косую черту. Вы, кажется, думаете, что он должен оставаться неизменным и что, например. \$
следует оставить как \$
. Стандарт говорит напротив этого.