2013-09-18 2 views
0

Я прочитал эту команду где-нибудь .. не знаю, что это такое.Unix Command readlink, xargs, sed, cut

find . -maxdepth 1 -type f -follow | cut -d/ -f2 | xargs -I % readlink -f % | cut -d\/ -f7,14 | sed 's/\// /g' | sort 

Я искал его, и получил то, что maxdepth и типа означают, но не о -follow, cut -f -f2, readlink и sed.

Что означает -f7,14?

+3

'man cut' покажет вам. Удачи. – shellter

+0

Что делать xargs -I% readlink -f% означает? – ALBI

+0

sed ////g 'неправильная команда, может быть, она должна выглядеть как' s/\ ///g ' – insider

ответ

1

Преломление это лучший подход.

Сначала команда поиска запускается в текущем каталоге. , ограничьте поиск глубиной только текущим каталогом, используя значение 1 и тип поиска, ограниченный только файлами (тип f), и использовать фактические свойства файла, если он получает символическую ссылку, используя -follow. т. е. следовать символической ссылке.

i.e до здесь

найти. -maxdepth 1-type f -follow

оттуда просто вырезать второе поле (-f2), если разделителем является/(-d /), чтобы избавиться от точки - текущий каталог, который вы увидите из find листинга.

это до здесь find. -maxdepth 1-type f -follow | вырезать -d/-f2

затем трубы выход в xargs и запустить команду readlink, которая печатает сам файл, связанный с символической ссылке в режиме канонизировать (дать имя связанного файла цепи) Check example here

Тогда выход передается для вырезания для получения 7-го и 14-го полей, если разделителем является «\».

Вы можете увидеть любой вывод здесь, только если у вас есть ссылка на эту глубину, но это возможно.

И затем с sed ////g 'выводится вывод «\» (экранирование выполняется /) и заменяется пробелом «». глобальный режим поиска и замены sed - заменить все возникшие пробелы \ "" "".

Что такое намерение с помощью команды? Я думаю, что он ищет символические ссылки, а затем находит фактический связанный файл. Я не совсем понимаю причину резки только 7-го и 14-го полей, а затем замены косой черты. Вероятно, пользователь искал особую глубину каталогов.