ls часто является псевдонимом в интерактивной оболочке.
Например, в моем сеансе bash, если я делаю type ls
, я получаю
ls is aliased to `ls -t --group-directories-first -I .pyc -I __pycache__ -I .git --color=auto -xF'
(псевдоним обычно исходит от $ HOME/.bashrc
или /etc/bash.bashrc
).
Теперь, если вы делаете:
sh -c 'ls | grep d | wc'
(или command ls| command grep d | command wc
) вы должны получить абсолютно такой же результат, как и при компиляции
int main() { system("ls | grep d | wc"); }
и запустить его в том же каталоге.