Предположим, у меня есть каталог /реж
, внутри которого есть 3 ссылки на другие каталоги
/реж/dir11
, /реж/dir12
, и /реж/dir13
. Я хочу, чтобы перечислить все файлы в Реж
в том числе в dir11,
dir12и
dir13`.
Чтобы быть более универсальным, я хочу, чтобы перечислить все файлы, в том числе и в каталогах, которые симлинки. найти .,
ЛС-Р` и т. д. остановка в ссылку без перехода на их дальнейший список.
Параметр -л
в ЛС
добиться того, чего вы хотите. Он разыменовывает символьные ссылки.
Так что ваша команда будет иметь вид:
ls -LR
Вы также можете сделать это с
find -follow
Параметр следовать
направляет найти, чтобы следовать символическим ссылкам в каталогах.
На Mac ОС X использование
find -L
как следовать
является устаревшим.
Как насчет дерева? `дерево -я будет следовать по символическим ссылкам.
Предупреждение: я писал этот пакет.
find /dir -type f -follow -print
-тип F
означает, что он будет отображать реальных файлов (не симлинки)
следовать
означает, что он будет следовать вашим каталог симлинки
-принт
приведет к его, чтобы отобразить имена файлов.
Если вам нужен дисплей тип LS, вы можете сделать следующее
find /dir -type f -follow -print|xargs ls -l
С помощью команды ls:
ls -LR
из 'человек Общ':
-L, --dereference
when showing file information for a symbolic link, show informa‐
tion for the file the link references rather than for the link
itself
Или, используя найти:
find -L .
Найти странице:
-L Follow symbolic links.
Если вы хотите следовать только несколько символические ссылки (как, может быть, только верхнего уровня, о которых вы упомянули), Вы должны смотреть на параметр-H, которое только следует за ссылки, которые вы передаете ему в командной строке.
find -L /var/www/ -type l
# man find
-л следовать символическим ссылкам. Когда найдете анализирует и выводит информацию о файлах, используемая информация должна быть взята из свойства У файла, на который указывает ссылка, не от самой ссылки (если это не сломано символической ссылкой или найти не в состоянии изучить файла который указывает ссылка). Использование этого варианта подразумевает-noleaf. Если вы позже использовать опцию-P, -noleaf остаются в силе. Если -л > в действии и найти обнаруживает символическую ссылку на поддиректории в ходе его поиска, подкаталог, указанный в символическая ссылка быть найдены.
Я знал, что "дерево" является подходящим, но я не'т быть установлено дерево. Итак, я получил довольно близко альтернативный здесь
find ./ | sed -e 's/[^-][^\/]*\//--/g;s/--/ |-/'
ls -R -L
-Л
разыменовывает символьные ссылки. Это также сделает его невозможно увидеть какие-либо символические ссылки на файлы, хотя они'будете выглядеть указанное файл.