Почему rm разрешено удалять файл, принадлежащий другому пользователю?

Использование операторов удаления шаблона оболочки POSIX:

string=svn+ssh://srv.com/repo/branches/TEST_BRANCH_56/main/code/main_output.c
output=${string#*/branches/*/}

Это удалит наименьшую начальную часть $ string , которая соответствует этому шаблону. Он отличается от:

printf '%s\n' "$string" | sed '
  :1
  $!{
   N;b1
  }
  s|.*/branches/[^/]*/||'

или:

expr " $string" : ' .*/branches/[^/]*/\(.*\)'

в таких случаях, как string = foo / branch / bar / branch / baz / something , где $ {string # pattern} можно было бы вернуть ветвей / baz / something , в то время как другие вернут только безотносительно .

53
13.04.2017, 15:36
1 ответ

Логика аналогична логике дома. :Владелец или арендатор решает, каких гостей выгнать, независимо от того, кому они принадлежат. Кроме того, выселенный гость, которому рады в другом доме (, имеет еще одну жесткую ссылку в чужом каталоге ), не замерзнет снаружи.

0
27.01.2020, 19:33

Теги

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