Большинство POSIX-команд, которые имеют опцию обратного хода в рекурсивном каталоге (ls
, chmod
, chgrp
, chmod
, cp
, rm
), имеют для этого опцию -R
.
rm
также имеет -r
, потому что это то, что было изначально, задолго до POSIX.
Теперь поведение меняется, когда найдены симлинки при ходьбе по дереву. POSIX попыталась сделать все последовательно, добавив опции -L
/-H
/P
, чтобы дать пользователю возможность решить, что делать с симлинками, оставляющими по умолчанию, когда ни одна из них не предоставляется неуказанной.
POSIX grep
не имеет опций -r
или -R
.
GNU grep
изначально не имел ни того, ни другого. -r
было добавлено в 1998 году. Это было сделано по симлинкам.
-R
был добавлен как синоним в 2001 году для согласованности с другими утилитами. Это все еще следовало за симлинками.
В 2012 году (grep 2.12), -r
был изменен таким образом, чтобы он больше не следовал за симлинками, возможно, потому что -L
, -H
уже использовались для чего-то другого.
BSD grep
долгое время основывались на GNU grep. Некоторые из них переписали свои собственные и сохранили более или менее совместимые с GNU grep
. Компания Apple OS/X по-другому отнеслась к проблеме симлинков. -r
и -R
одинаковы и не следуют за симлинками. Однако существует вариант -S
, который действует как chmod
/cp
/find
's -L
для следования по симлинкам.
Вы должны находиться в извлеченном каталоге glibc-2.22 (отсюда ..
в пути к патчу, предполагается, что патч является в верхнем каталоге, который в вашем случае будет $ LFS
).
Вы должны распаковывать и собирать в каталоге $ LFS / source
, $ LFS / tools
не предназначен для этого (он предназначен для хранения временной системы) .
Вам действительно нужно внимательно прочитать главу 5.3 .
Сначала вам нужно распаковать tarball с glibc. Он был опущен.
tar -xf glibc-2.22.tar.xz
cd glibc-2.22
patch -Np1 -i ../glibc-2.22-upstream_i386_fix-1.patch
Удачи :)