Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Back when it was introduced, PowerShell effectively had a set of commands no one knew. To ease migration, and make things more familiar, aliases were added for many common Unix and cmd commands, e.g. both dir and ls map to Get-ChildItem.

However, having those aliases (not even limited to curl/wget or all the Unix-like aliases like ls, cp, rm, ...) is a risk since they shadow native programs that might exist. It's not as bad with dir, copy, del, since those are cmd-built-ins and thus cannot be called from anything that isn't cmd, but where already shadows where.exe.

So in general, since command resolution order places aliases before native programs, any default alias can break stuff on any machine. Which places this in pretty iffy territory. They cannot remove aliases without breaking existing scripts. This is still Microsoft we're talking about here. They don't just go around breaking stuff left and right. And they actually could never have safely introduced default aliases without a chance of breaking things.



They aren't necessarily built-ins. Years ago, I wrote a CMD where DIR, COPY, DEL, and others were intentionally not built-in. I even supplied it with two different versions of an external COPY command, one with syntax that was aligned with MOVE, REN, and so forth, and one with the full original idiosyncratic syntax of the IBM/Microsoft COPY command (that could concatenate multiple parallel lists of files).

I went in a different direction to JP Software's (then) 4OS2, which took the tack of adding futher built-in commands. JP Software's (current) Take Command is interesting to consider in light of this discussion. It has its own built-in versions of bzip2, gzip, jabber, rexec, rshell, sendmail, tail, tar, zip, 7zip, and others.

* https://jpsoft.com/help/index.htm?bzip2.htm

* https://jpsoft.com/help/index.htm?gzip.htm

* https://jpsoft.com/help/index.htm?jabber.htm

* https://jpsoft.com/help/index.htm?jar.htm

* https://jpsoft.com/help/index.htm?rexec.htm

* https://jpsoft.com/help/index.htm?rshell.htm

* https://jpsoft.com/help/index.htm?tail.htm

* https://jpsoft.com/help/index.htm?tar.htm

* https://jpsoft.com/help/index.htm?zip.htm

* https://jpsoft.com/help/index.htm?7zip.htm




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: