2014-11-18 4 views
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 

ответ

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 -- {} + 
+1

найти -maxdepth 7 -type d -name из \ * -exec дю -hs - { } \; работает без «вокруг» - очень ценю ваши быстрые ответы и просветление. – tomc

+0

@tomc. Вы правы. По какой-то причине я поменялся побегом с чем-то еще в моей руке, побег и цитаты должны работать одинаково хорошо. Рад, что ответ помог. – BroSlow

0

Используйте это:

du -h $(find . -type d -name 'of*')