найдите не дает ожидаемый ответ

Как это возможное:

$ find ACCESS -name arctic20.xml

не дает вывода, но:

$ ls -l ACCESS/arctic20.xml

дает:

-rw-rw-r-- 1 damocles damocles 2286 Nov  2  2016 ACCESS/arctic20.xml

Я проверил имя файла на невидимые символы, но ничего не нашел:

$ ls -1 ACCESS/arctic20.xml | od -c
0000000   A   C   C   E   S   S   /   a   r   c   t   i   c   2   0   .
0000020   x   m   l  \n
0000024

Это - моя система:

$ uname -a
Linux adc-a 3.13.0-115-generic #162-Ubuntu SMP Fri Mar 24 16:03:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1
задан 27 July 2017 в 12:24

1 ответ

По умолчанию, GNU find не переходит по символьным ссылкам, даже при рассмотрении параметров командной строки. От man find:

-H, -L и -P опции управляют обработкой символьных ссылок. Параметры командной строки после них взяты, чтобы быть названиями файлов или каталогов, которые будут исследованы до первого аргумента, который начинается '-', или аргумент '(' или '!'.

-P Никогда не переходите по символьным ссылкам. Это - поведение по умолчанию. То, когда находят, исследует или печатает информацию файл, и файл является символьной ссылкой, используемая информация должна быть взята от свойств самой символьной ссылки.

Если ACCESS (или может быть), символьная ссылка на каталог, и Вы хотите найти файлы внутри, даже если, символьная ссылка затем, необходимо сказать find -H ACCESS.

1
ответ дан 7 December 2019 в 15:32

Другие вопросы по тегам:

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