Неспособный к показанному рекурсивно

У Вас есть различные устройства на UNIX/Linux, которые представляют физические диски так, например, на Linux:

/dev/sda  -  Would designate SCSI drive with ID of 0 or lately more commonly ID:0 on SATA.
/dev/sdb  -  Would be secondary device, etc

Linux, когда это устанавливает, спросит Вас, где установить его на, и можно определять /dev/sda поскольку Ваш диск ОС и Вы можете определять /dev/sdb как местоположение для /home который будет отформатирован и смонтирован, если Вы выберете его, чтобы быть.

Вы создадите разделы на диске ОС, определяющем один для swap, /boot, / файловые системы, которые в основном создадут устройства как /dev/sda1, 2, 3 который будет смотреть на Вашу систему как на физические устройства, и они будут сделаны доступными для ОС в формах каталогов.

Таким образом в настроенном /dev/sda был бы Windows, эквивалентный из C:\ диск и /dev/sdb был бы эквивалент диска данных, безотносительно буквенного обозначения, которое Вы выбираете.

Таким образом, если Вы принимаете решение переустановить Linux все, чего необходимо будет остерегаться, на самом деле не переформатировал /dev/sdb или разделы, которые Вы настраиваете на нем так, чтобы данные Вы имели на том драйвере, остаются неповрежденными.

Теперь подобное понятие может быть применено, если существует только один диск в системе, но это будет немного более сложно из понятия, которое Windows также поддерживает, но обычно не быть используемым.

1
05.05.2013, 11:45
2 ответа

Необходимо поместить -R опция впереди.

chown -R root:www-data /var/www/example.com 

(Я всегда использую точку вместо двоеточия между пользователем и группой, но в страницах справочника говорится, что двоеточие должно использоваться).

2
27.01.2020, 23:21
  • 1
    Er, я не знаю, почему Вы думаете, что не можете использовать двоеточие: sprunge.us/aDJW –  Chris Down 05.05.2013, 11:55
  • 2
    Dot был старым путем и двоеточием новое. Угадайте, что кто-то думал, что будет хорошо смочь использовать точки в именах пользователей/группах. –  Runium 05.05.2013, 12:05
  • 3
    @Sukminder я предполагаю, что 'старый путь' идентифицирует меня. Я рад, что точка все еще позволяется, поскольку трудно изменить привычки ввода после использования команды этот путь к близко к 30 годам –  Anthon 05.05.2013, 12:09
  • 4
    @Sukminder Однажды Anthon, сказанный в его ответе, который не были позволены двоеточия, который не верен. Я не пытался предположить, что использование точки является "неправильным" в некотором роде, просто что двоеточие совершенно допустимо. –  Chris Down 05.05.2013, 12:24
  • 5
    GNU позволяют опции после аргументов (какой IMO является ошибкой), если POSIXLY_CORRECT переменная среды установлена (или -- используется для маркировки конца опций). AFAIK, Ubuntu не устанавливает ту опцию в стандартной среде, таким образом, я сомневаюсь относительно этого быть проблемой. Так или иначе я соглашаюсь, что нужно поместить опции впереди. –  Stéphane Chazelas 05.05.2013, 16:18

GNU coreutils версия chown, который является стандартным в соответствии с Ubuntu, примите опции, помещенные где угодно, (как долго как -- не используется). Это:

chown foo:bar some/location -R
chown -R foo:bar some/location

обе работы. Это из-за как getopt_long() работы. В моей книге это - ошибка – поскольку она должна или закончиться по ошибке или быть зарегистрирована, который от того, что я могу найти, это не.

chown foo:bar some/location -- -R

искал бы названный каталог -R.


Однако, если одна переменная среды набора POSIXLY_CORRECT первый пример перестал бы работать, если нет никакого названного каталога -R, и никогда не рекурсивно вызывал бы.

$ export POSIXLY_CORRECT=
$ chown -v :foo a/ -R
ownership of `a/' retained as foo:foo
chown: cannot access `-R': No such file or directory

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

Также обратите внимание что значение POSIXLY_CORRECT не имеет никакого эффекта. Это не отключило бы его:

export POSIXLY_CORRECT=0
export POSIXLY_CORRECT=no
export POSIXLY_CORRECT=false
export POSIXLY_CORRECT=...

Можно было бы должен быть unset это.


Это могла быть Ваша система, настраивается с любым другой chown инструмент или POSIXLY_CORRECT установлен.

Проверьте:

export | grep POSIX
chown --version
# etc.

Как примечание стороны, использование точки, ., разделить группу и пользователя было obsoleted с POSIX 2001 (info coreutils 'chown invocation'), но все еще поддерживаемый для назад совместимости, хотя это не рекомендуется.

2
27.01.2020, 23:21

Теги

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