Файл на самом деле имеет имя, но это сделано из непечатаемых символов.
Легкий метод должен полагаться на завершение оболочки: нажимайте Tab неоднократно, пока “странное” имя файла не будет вставлено. Необходимо было настроить оболочку для циклического повторения между возможными завершениями:
menu-complete
, который не связывается по умолчанию, а не complete
, который связывается с Вкладкой по умолчанию. С другой стороны, используйте Esc * для вставки завершений для всех файлов, и удалить тех Вы не хотите удалять из командной строки.setopt auto_menu
или setopt menu_complete
набор.Если завершение не полезно в Вашей оболочке, можно звонить rm -i -- *
и ответьте "нет" за исключением этого конкретного файла. Если имя файла не начинается с печатаемого символа, можно ограничить соответствия файлами, первый символ которых не находится в ряде печатаемых символов:
rm -i [!!-~]*
rm -i [![:print:]]*
rm -i -- [!a-z]
(Остерегайтесь, если Ваш шаблон может соответствовать названному файлу -f
, который rm
рассматривал бы как опция.)
Другой метод должен звонить ls -i
найти inode файла (inode однозначно определяет файл в данной файловой системе), затем find -inum
воздействовать на тот конкретный файл. Этот метод главным образом полезен, когда каталог содержит много файлов.
ls -i
# note the inode number 12345
find . -xdev -inum 12345 -delete
Если Ваш find
не имеет a -delete
опция, звонить rm
:
find . -xdev -inum 12345 -exec rm -- {} \;
(Да, я знаю, что большая часть из этого была уже отправлена. Но ответы с релевантной информацией делают это более сложным, чем это должно быть.)
Не ошибка согласно показанной документации:
$ info coreutils 'chown invocation'
The `chown' command sometimes clears the set-user-ID or set-group-ID
permission bits. This behavior depends on the policy and functionality
of the underlying `chown' system call, which may make system-dependent
file mode modifications outside the control of the `chown' command.
For example, the `chown' command might not affect those bits when
invoked by a user with appropriate privileges, or when the bits signify
some function other than executable permission (e.g., mandatory
locking). When in doubt, check the underlying system behavior.
Это дизайном, и это - стандартное поведение. Заключение в кавычки стандарта POSIX:
Если не показано вызывается процессом с соответствующими полномочиями, идентификатор пользователя набора и биты идентификатора группы набора регулярного файла должны быть очищены после успешного завершения; идентификатор пользователя набора и биты идентификатора группы набора других типов файлов могут быть очищены.
(s
setuid (или setgid в столбце группы), не липкий, между прочим.)
Это поведение следует за поведением базового системного вызова (за исключением того, что в некоторых системах, setxid биты только очищены для исполняемых файлов).
Причина удаления setuid укусила, то, что изменение владельца также изменяется, какой пользователь будет эффективным идентификатором пользователя процесса. В частности, в системах, где пользователь может отдать файл, cp /bin/sh foo; chmod u+s foo; chown joe foo
создал бы setuid исполняемый файл, принадлежащий joe, гигантской дыре в системе безопасности.
info coreutils
прежде. Я только прочитал страницу справочника и искал сеть. передача – Germar 02.11.2012, 22:59