Я запустил две отдельные команды, каждая из которых производила разные числа. Может кто-нибудь помочь мне понять, почему?
find -type d -name *log* | du -hcs
find . -type d -name '*log*' -print0 | xargs -0 du -hcs
Я запустил две отдельные команды, каждая из которых производила разные числа. Может кто-нибудь помочь мне понять, почему?
find -type d -name *log* | du -hcs
find . -type d -name '*log*' -print0 | xargs -0 du -hcs
Я уверен, что downvoter(ы) думал, что способ выяснить, почему
man duи удивился, почему ты не прочитал руководство.
По иронии судьбы, хотя это действительно так для BSD, в дистрибутивах Linux это не способ узнать, потому что на странице руководства GNU отсутствуют некоторые довольно простые вещи. Пользователи Linux должны бежать
info coreutils duчтобы увидеть документацию с одним очень важным предложением в.
Это второе предложение (третье в OpenBSD) страницы руководства для команды BSD du
.
Таким образом, даже если ваш подстановочный знак - в вашей команде, а не в исправленной версии, которая была дана вам в ответе - (потенциально) неверно раскрыт в вашей команде find
, это не имеет разницы. Независимо от того, что ваша команда find
записывает в свой стандартный вывод, она полностью игнорируется командой du
.
Из руководства, в котором четко указано, что происходит, в сочетании с тем, что уже было сказано в этом ответе в третьем пункте, должно быть ослепительно очевидно, почему вы видите различные варианты поведения и результаты между вашей командой и исправленной. Приготовься пнуть себя. ☺