【发布时间】:2015-08-24 21:18:07
【问题描述】:
我需要服务器上具有特定扩展名的所有文件的列表。我需要它来显示服务器主机名、文件大小和文件的绝对路径。
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 /home/ joe/pics/mountains.jpg
我不知道如何在查找输出的每一行中包含主机名。我尝试将主机名函数添加到 xargs 或 -exec 部分会导致错误,因为它会尝试将主机名应用于查找的输出。
有没有办法在查找输出的每一行中包含主机名?
当循环通过许多服务器时,我希望有如下输出:
joes_server 5473 /home/joe/pics/sunset.jpg
joes_server 8522 /home/joe/pics/mountains.jpg
marys_server 5398 /home/mary/snapshots/background.jpg
janes_server 9642 /home/jane/pictures /flowers.jpg
谢谢
【问题讨论】:
-
通过 sed/awk 运行 du 输出并将它们放入服务器名称中。您将无法在此之前执行此操作,因为您的 find 将寻找不存在的
joes_server 5473/etc...。 -
如果
find为此添加了-print令牌会很好。
标签: linux bash command-line