Как я могу получить символические ссылки и файлы, на которые они нацелены, без какой-либо информации о правах доступа, даты и т. д.?

Вы путаете bashс awkмассивами.

В вашем примере команда разбивает $INPUTна массивawkс именем a.
Кроме того, вам нужно использовать BEGIN{...}вместо {...}, иначе awkожидает ввода, который вы не даете.

Попробуйте это,

awk 'BEGIN{split('$INPUT',a,""); for (k in a) print a[k]; }'

или лучше установите переменную с помощью -v, чтобы избежать проблем с неправильным вводом.

awk -v "input=$INPUT" \
  'BEGIN{split(input,a,""); for (k in a) print a[k]; }'

Выход::

6
5
7
8
2
3

Или просто сделать все вbash:

for ((i=0;i<${#INPUT};i++)); do
  echo ${INPUT:$i:1};
done
1
19.02.2020, 12:58
2 ответа

Один из способов — просто использовать чистое решение find.

find /path/to/file -type l -printf '%-40p  --> %l\n

Просто удалите -40или отрегулируйте требуемый выходной сигнал.

2
28.04.2021, 23:22

Попробуйте ввести команду readlink.

напр. (адаптация команды поиска):

find -L /path/to/dir/ -xtype l -exec readlink {} \;

или, чтобы получить его какsource -> target

find -L. -xtype l -print0 | xargs -0 -I{} bash -c 'echo {} "->" "$(readlink {} )"'
2
28.04.2021, 23:22

Теги

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