0

我是更高级的 bash 命令的新手。我需要一种方法来计算代码行中外部库的大小。有几个主要目录,但我也有一个电子表格,其中包含需要包含的库的实际位置。

我已经摆弄过finddu但我不清楚如何指定多个位置。我可以找到电子表格中列出的数百个罐子的大小,而不是与主目录近似吗?

编辑:我现在可以找到特定文件的大小。我必须将带有位置的 excel 电子表格导出到 csv。在 PSPad 中,我“加入行”并将其复制并直接粘贴到list_of_files插槽中。( find list_of_files | xargs du -hc)。我无法find使用包含由空格/制表符/行分隔的位置的文件。

现在我不知道替换是否list_of_fileslist_of_directories起作用。看起来它计算了两次,例如

1.0M /folder/dummy/image1.jpg  
1.0M /folder/dummy/image2.jpg  
2.0M /folder/dummy  
3.0M /folder/image3.jpg  
7.0M /folder  
14.0M total  

这是假的,但如果它是这样计数的,那不是我想要的。我怀疑这是因为我得到的总数似乎真的很高。

4

2 回答 2

1

你的意思是...

find list_of_directories | xargs du -hc

然后,如果您想精确地通过管道传输到电子表格中列出的文件,您需要一种过滤它们的方法。它是文本文件还是哪种格式?

find `(cat file)` | xargs du -hc

如果它们以空格分隔的列表形式存在于 txt 文件中,则可能会这样做。可能你会有一些关于空格的问题......你必须引用文件名。

于 2009-04-14T15:12:01.187 回答
0
for fn in `find DIR1 DIR2 FILE1 -name *.jar`; do du $fn; done | awk '{TOTAL += $1} END {print TOTAL}'

您可以指定文件和目录来代替 DIR1、DIR2、FILE1 等。您可以通过删除管道 awk 命令列出它们各自的大小。

于 2009-04-14T15:22:59.177 回答