Телефон должен быть базирован, чтобы иметь root
пользовательская установка sudo
(или любое другое приложение). Иначе это было бы установлено как "типичный" пользователь и не имело бы корневой доступ.
Что касается второго вопроса, однажды sudo
установлен по внедренному телефону, по моему опыту, приложения, для которых нужен он просто, запрашивают это, и Вы получаете раскрывающуюся подсказку.
Пример на информационной странице показывает Вам как, хотя примеру немного трудно последовать:
$ mkdir c; : > a; ln -s a b; cp -aH a b c; ls -i1 c
74161745 a
74161745 b
Давайте разломаем это на его команды компонента:
mkdir c;
: создает каталог c/
: > a;
: просто быстрый способ создать пустой файл. Это эквивалентно echo "" > a
. :
удар, созданный, в котором ничего не делает, видят help :
.ln -s a b
: создайте softlink к a
названный b
. На данном этапе это содержание текущего каталога:
$ ls -l | cc2ter
total 4
-rw-r--r-- 1 terdon terdon 0 Oct 9 02:50 a
lrwxrwxrwx 1 terdon terdon 1 Oct 9 02:50 b -> a
drwxr-xr-x 2 terdon terdon 4096 Oct 9 02:50 c
Отметьте это b
символьная ссылка (гибкая ссылка), она не указывает на тот же inode как a
:
$ ls -i1c a b
16647344 a
16647362 b
cp -aH a b c;
: файлы копии a
и b
в каталог c
. Это - то, где преобразование происходит, опции передали cp
:
-a, --archive
same as -dR --preserve=all
-d same as --no-dereference --preserve=links
-H follow command-line symbolic links in SOURCE
-H
необходимо потому что (от info cp
):
При копировании с символьной ссылки 'CP' обычно переходит по ссылке только если не копирование рекурсивно.
С тех пор -a
активирует рекурсивное копирование (-R
), -H
необходим, чтобы перейти по символьным ссылкам. -H
средства, которые по ссылкам переходят несмотря на рекурсию и приведут к жестким ссылкам, сделанным в целевом каталоге. Это содержание c/
после последнего шага (первый столбец является inode числом):
$ ls -li c
total 0
17044704 -rw-r--r-- 2 terdon terdon 0 Oct 9 02:50 a
17044704 -rw-r--r-- 2 terdon terdon 0 Oct 9 02:50 b
Теперь относительно того, как точно это работает, насколько я могу фигурировать из проигрывания вокруг с ним, cp --preserve=links
объединенный с -L
или -H
преобразует символьные ссылки на жесткие ссылки, если и ссылка и цель будут скопированы в тот же каталог.
На самом деле, как узнанный OP, по крайней мере, в системах Debian, cp --preserve=links
достаточно для преобразования символьных ссылок на жесткие ссылки, если целевой каталог является тем же.
Я отправил отчет о возможной ошибке coreutils команде @gnu.org в info cp
документация и получила этот ответ:
Документы являются немного краткими здесь. Основной вопрос - то, что-a подразумевает-d, и это подразумевает - нет - разыменовывают, который требуется, чтобы заставлять Ваши команды работать как ожидалось. Т.Е. - нет - разыменовывают, требуется, чтобы останавливать CP неявно после символьных ссылок в источнике.
Проверить и разделить деталь, продемонстрированную здесь:
$ mkdir links; : > a; ln -s a b;
Здесь мы видим, что-d переопределяет-H, как это прибывает после. Поэтому мы не разыменуем символьные ссылки во-первых.
$ rm links/*; cp -H -d a b links $ l links/ lrwxrwxrwx. 1 padraig 1 Oct 10 09:37 b ▪▶ a -rw-rw-r--. 1 padraig 0 Oct 10 09:37 a
Здесь мы видим, что-H теперь соблюдают, как он является последним, и поэтому символьные ссылки сопровождаются в источнике, приводящем к hardlinks в месте назначения.
$ rm links/* $ rm links/*; cp -d -H a b links $ l links -rw-rw-r--. 2 padraig 0 Oct 10 09:37 b -rw-rw-r--. 2 padraig 0 Oct 10 09:37 a
Я сделаю документы немного более явными со следующим:
diff --git a/doc/coreutils.texi b/doc/coreutils.texi index b273627..aeed4ca 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -8257,9 +8257,11 @@ $ mkdir c; : > a; ln -s a b; cp -aH a b c; ls -i1 c @noindent
Отметьте исходные данные:
@file{b}
символьная ссылка на регулярный файл@file{a}
, все же файлы в целевом каталоге,@file{c/}
, трудно связаны.
- С тех пор
@option{-a}
подразумевает@option{--preserve=links}
, и с тех пор@option{-H}
говорит@command{cp}
для разыменования параметров командной строки это видит два файла с тем же inode числом и сохраняет воспринятую жесткую ссылку.- С тех пор
@option{-a}
подразумевает@option{--no-dereference}
это скопировало бы символьную ссылку, но позже@option{-H}
говорит@command{cp}
разыменовать параметры командной строки, где это затем видит два файла с тем же inode числом. Затем@option{--preserve=links}
опция, также подразумеваемая@option{-a}
сохранит воспринятую жесткую ссылку.
Было бы трудно преобразовать жесткие ссылки на символьные ссылки. В случае жесткой ссылки существует блок данных в файловой системе, которая имеет две или больше записи файла, указывающие на него. Нет никакого "источника" и "места назначения"; это - буквально один файл с несколькими эквивалентными именами. Можно использовать GNU, находят для идентификации их этот путь:
sauer@zipper:~$ find . -type f -links +1 -printf "%i: %p (%n)\n"
609: ./link1 (2)
609: ./link2 (2)
После того как у Вас есть все файлы с тем же inode, необходимо было бы выбрать, чтобы быть "реальным" файлом и затем просто заменить все другие с символьными ссылками на основной файл. Вероятно, способ сделать, который должен был бы использовать это:
sauer@zipper:~$ find . -type f -links +1 -printf "%i %p\n" | sort -nk1
609 ./link1
609 ./link2
И затем имейте фигуру сценария, как выбрать одно из значений с тем же числом, чтобы иметь все, что другие связывают с ним. Возможно, первый становится целью, и больше с тем же inode symlinked к нему. Вот один действительно простой, непротестированный пример сценария оболочки
#!/bin/sh
prev=""
target=""
find /tmp -type f -links +1 -printf "%i %p\n" | sort -nk1 \
| while read inode file
do
if [[ $inode != $prev ]]
then
target="$file"
prev=$inode
else
ln -sf "$target" "$file"
fi
done
Существуют потенциальные проблемы в этом, ссылки из различных каталогов могут быть созданы с недопустимой целью, если путь в находке (/tmp в этом примере) не является полным. Но общее представление должно быть прекрасным.
-v
для подробного к ln
команда, и в первом просто пишет echo ln -sfv "$target" "$file"
для наблюдения, что произошло бы иначе это будет действительно опасно. Если все выглядит хорошо, можно удалить echo
– rubo77
07.12.2014, 03:48
-v
только говорит Вам, что аварийно завершилось, но да, положительная сторона у выполнения с эхом сначала.
– dannysauer
07.12.2014, 07:48
-H
и/или-L
. Во всяком случае:: > file
было новым для меня и является большим! Также: Согласно философии UNIX [" … программы, которые делают одну вещь и делать это хорошо"], существуетln
для создания ссылок. Но затем, почему бы не сделать это возможный и имеет смысл в рабочем процессе :) – erch 09.10.2013, 15:44-H
но это будет гибкая ссылка. Добавление-H
заставляет его преобразовать в жесткую ссылку. – terdon♦ 09.10.2013, 17:12info
страница с и без-H
и каждый дал мне hardlink и другой символьная ссылка с другим inodes. Это был на ext4 выполнении файловой системы Debian иcp (GNU coreutils) 8.21
. Вы действительно получаете различные результаты? Если Вы хотите отправить где-нибудь, проверьте с помощью ping-запросов меня в чате. – terdon♦ 10.10.2013, 03:05:
также работы дляksh
,csh
, и OpenBSDsh
(который является действительно на основеpdksh
). – kurtm 10.10.2013, 05:13