改进了查找命令以列出文件、它们的目录和大小

Improved find command to list files, their dir and size

我在 cmd 行上工作,我在 ESXi 上使用 plink 从 PowerShell (PowerCLI) 执行。

我的想法是列出 vmdk 文件(有例外)、它们的符号链接(因为它们的真实文件夹名称是 ID)和第一个子文件夹(这有助于我找到 VMDK 文件,因为它可能反映 VM 文件夹)。输出为 CSV 格式,因此我可以轻松地在 PowerShell 中使用它。这是我到目前为止的进展:

find /vmfs/volumes -type l -exec find {} -name "*.vmdk" -follow \; | awk '{n=split([=10=],a,"/"); print a[4]";"a[5]";"a[n] }' | grep -v ".*-flat.vmdk$" | grep -v ".*delta.vmdk$" | grep -v ".*-ctk.vmdk$"

这对我来说很好,但我想将文件大小添加为最后一个字段 (VMDKFileName;Size)。大小格式并不重要,我可以在我的 PS 脚本中对其进行操作。

不知道我是否正在以正确的方式满足我的需求。

请随时询问更多信息。

P.S: 一行命令就好了,因为我正在使用 PLink,它对我来说更容易使用。

TIA

Ka,答案来了(好头疼)!

find $(find /vmfs/volumes -type l -maxdepth 1) -name "*.vmdk"  -follow -exec ls -lHd {} \; | awk '{n=split([=10=],a,"/"); print a[4]";"a[5]";"a[n]";"}' | grep -v ".*-flat.vmdk" | grep -v ".*delta.vmdk" | grep -v ".*-ctk.vmdk"