1

奇怪的是,这个命令可以在 2 个 SLES11 服务器上完美运行,但不能在另一个服务器上运行。这是我的命令...

du `find -maxdepth 7 -type d -name of\*` -hs

我得到这样的结果......

du: invalid option -- 'I'
du: invalid option -- 'n'
du: invalid option -- 't'
du: invalid option -- 'e'
du: invalid option -- 'r'
du: invalid option -- 'v'
du: invalid option -- 'i'
du: invalid option -- 'e'
du: invalid option -- 'w'
du: invalid option -- '/'
du: invalid option -- 'o'
du: invalid option -- 'f'
du: invalid option -- 'd'
du: invalid option -- 'j'
du: invalid option -- 'r'
du: invalid option -- 'I'
du: invalid option -- 'n'

这是来自相同构建的服务器的结果......

du `find -maxdepth 7 -type d -name of\*` -hs
200K    ./xxxxxxxxx/xxxxxxx/xxxxxxx/of19darc
6.4G    ./xxxxxxxxx/xxxxxxx/xxxxxxx/ofkuoarc
188K    ./xxxxxxxxx/xxxxxxx/xxxxxxx/ofkuoarc/ofkuoarc
180K    ./xxxxxxxxx/xxxxxxx/xxxxxxx//data/Archive/ofw68arc
du: cannot access `yyy/Cyyyyy/GW': No such file or directory
du: cannot access `Archive/of19darc': No such file or directory

etc
4

2 回答 2

1
du `find -maxdepth 7 -type d -name of\*` -hs

任何包含空格的文件都会失败,并会尝试将以-(或-在空格之后)开头的文件视为du.

尝试类似的东西

find -maxdepth 7 -type d -name of\* -exec du -hs -- {} \;

或者如果你find支持它(更快)

find -maxdepth 7 -type d -name of\* -exec du -hs -- {} +
于 2014-11-18T11:30:24.793 回答
0

用这个:

du -h $(find . -type d -name 'of*')
于 2014-11-18T11:25:46.210 回答