2015-08-24 2 views
0

Мне нужен список всех файлов с определенным расширением на сервере. Мне нужно это, чтобы показать имя хоста сервера, размер файла и абсолютный путь к файлу.Добавление имени хоста сервера в каждую строку вывода «Найти»

echo $(hostname); find $(pwd)/-iname *.jpg -exec du -s {} \; 

или

echo $(hostname); find $(pwd)/-iname *.jpg|xargs du -s 

Почти получить меня там:
joes_server
5473 /home/joe/pics/sunset.jpg
8522/главная/джо/фото /mountains.jpg

Я не могу понять, как включить имя хоста в каждую строку вывода поиска. Мои попытки добавить функцию имени хоста в раздел xargs или -exec приводят к ошибкам, поскольку он пытается применить имя хоста к выходу find.

Есть ли способ включить имя хоста в каждую строку вывода поиска?

Когда петельные через множество серверов, я хотел бы иметь выход как:
joes_server 5473 /home/joe/pics/sunset.jpg
joes_server 8522/главная/JOE/картинки/горы .jpg
marys_server 5398 /home/mary/snapshots/background.jpg
janes_server 9642 /home/jane/pictures/flowers.jpg

Благодаря

+0

запустить выход du через sed/awk и включить их в имя сервера. вы не сможете это сделать ДО, поскольку ваша находка будет искать «joes_server 5473/etc ...», которая не будет существовать. –

ответ

2
find "$PWD"/-iname '*.jpg' -exec du -s {} + | sed "s/^/$(hostname): /" 

Изменение:

  1. Использование $PWD вместо $(pwd) - нет необходимости запускать команду, когда Баш помещает его в качестве параметра для вас уже

  2. ЦИТАТЫ! QUOTE! QUOTE!

  3. Использование + вместо ; на find -exec так, что он будет проходить более одного файла для каждого вызова du; это более эффективно. Если ваша версия find не поддерживает + здесь, вы можете использовать -print0 | xargs -0 du -s.

  4. Проложить все это через sed, чтобы вставить имя хоста в начале каждой строки.

+0

Благодарим вас за объяснения вместе с вашим решением. Я знаю достаточно базового Linux для выполнения моей простой работы. Мои вредные привычки указывали на то, что вы получаете, когда кто-то не знает, как правильно интерпретировать результаты Google, которые они собрали вместе. – Lurch

+1

Один из '' $ PWD '' и '/' может быть опущен; первый, если вы действительно хотите найти всю файловую систему, последний, если вы действительно хотите ограничить поиск текущим каталогом. – chepner

Смежные вопросы