Ошибка при попытке использовать Subversion после обновления: Ошибка сегментации [закрыто]

find не будет обрабатывать жесткие ссылки специально , за исключением теста -links . . Символьные ссылки на файлы также будут обрабатываться очень аналогично.

Я хотел бы прочитать вам справочную страницу find , но я предполагаю, что вы ее уже читали. Справочные страницы написаны на загадочном языке , который трудно понять новичкам. Возможно, вам поможет пример. Сделайте следующее:

$ mkdir dir1 dir2 dir3

$ touch dir1/file1 dir2/file2 dir3/file3

$ ln -s dir2 two

$ cd dir1

$ ln -s ../dir3 three

$ cd ..

$ ls -lR                                # I have deleted my user name from the below.
.:
total 1
drwxr-xr-x 1           0 Sep  4 13:08 dir1
drwxr-xr-x 1           0 Sep  4 13:08 dir2
drwxr-xr-x 1           0 Sep  4 13:08 dir3
lrwxrwxrwx 1           4 Sep  4 13:08 two -> dir2

./dir1:
total 1
-rw-r--r-- 1           0 Sep  4 13:08 file1
lrwxrwxrwx 1           7 Sep  4 13:08 three -> ../dir3

./dir2:
total 0
-rw-r--r-- 1           0 Sep  4 13:08 file2

./dir3:
total 0
-rw-r--r-- 1           0 Sep  4 13:08 file3

$ find dir1 two
dir1
dir1/file1
dir1/three
two

$ find -P dir1 two                      # This is the default; i.e., same as the above.
dir1
dir1/file1
dir1/three
two

$ find -H dir1 two
dir1
dir1/file1
dir1/three
two
two/file2

$ find -L dir1 two
dir1
dir1/file1
dir1/three
dir1/three/file3
two
two/file2

Обратите внимание, что:

  • В поведении по умолчанию (т.е., поведение -P ), find не следует ни по одной символической ссылке. two (в каталоге верхнего уровня) и dir1 / three просто сообщаются как объекты.
  • В разделе -H за символической ссылкой two dir2 следует (т. Е. Мы видим file2 , который находится в dir2 ) , потому что two указан в командной строке find . Обратите внимание, что dir1 / three по-прежнему сообщается как объект.
  • В -L следуют обе символические ссылки. Мы видим file2 , потому что переход по ссылке two dir2 , , и мы видим file3 , потому что идет ссылка dir1 / three ../ dir3 .

Если вам это не совсем понятно, попробуйте выполнить команды find в моем примере с -ls в конце (как альтернативой стандартному -принту ) и обратите особое внимание на способы перечисления два и три . Вы заметите, что символические ссылки на файлы также отображаются по-разному в разных параметрах.

Вот еще один пример:

$ ln -s /bin/sh mysh

$ find . -size +9

$ find -H . -size +9

$ find -L . -size +9
./mysh

Символьная ссылка ./ mysh мала. Он указывает на / bin / sh , это довольно большой файл. Тестирование с размером , ./ mysh рассматривается как маленький в параметрах -P (по умолчанию) и -H , , но считается большим в разделе -L , потому что -L означает «посмотреть файл, на который указывает ссылка».


Еще один пример:

  • найти. -type f find -H. -type f ) найдет только простые файлы.
  • находка. "(" -type f -o -type l ")" найдет простые файлы и (все) символьные ссылки.
  • найти -L. -type f найдет простые файлы и символические ссылки , которые указывают на простые файлы . (Кроме того, если дерево каталогов содержит какие-либо символические ссылки на каталоги, эти каталоги также будут найдены.)
0
02.04.2015, 08:13
0 ответов

Теги

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