Thread
:
metalayer-crawler
View Single Post
suitti
2008-05-05 , 21:29
Posts: 96 | Thanked: 7 times | Joined on Sep 2007
#
5
This is really a rant. Please ignore it.
I guess my main quibble with busybox 'find' is that it isn't GNU 'find'. It's not just that it does the wrong thing with symlinks. So, let's say you have file names with spaces in them, perhaps it's Pink Floyd's 'Comfortably Numb.mp3'. And, for some reason, the files aren't readable. No problem,
find . -type f -print0 | xargs -0 chmod a+r
will change every file in the current directory with all subdirectories, right? Except that the busybox 'find' doesn't know '-print0', and it's 'xargs' doesn't know '-0'. And if you try
find . | xargs chmod a+r
you get errors like:
chmod: ./Comfortably not found
chmod: ./Numb.mp3 not found
For the record, these options change the protocol from newline terminated to null termintated strings. I've no idea why 'xargs' never took each newline terminated line and made it a single argument to the given command without using a shell, but that's history. So 'xargs' with '-0' knows to exec 'chmod' with the whole strings, and not broken at shell break points, like spaces. In fact, if fixes lots of shell meta character problems.
But, you say, 'find' has '-exec', which can run 'chmod' directly. However, busybox's 'find' doesn't know '-exec', which was available in 'find' in Unix Version 7, certainly by 1981. So, i'm left without a solution. I regularly get files with spaces and other shell meta characters in them (and Unix has allowed them since forever), and i don't have utilities that can cope. Either fix 'busybox', or drop it in favor of the real apps.
In 1995, i had a 486/sx25 laptop with 16 MB RAM and 170 MB disk. I ran Linux with full Emacs, gcc, CVS, apache, browser in X, and had 70 MB disk free for my stuff. Now i have a 400 MHz Arm with 128 MB RAM, 18.25 GB disk, and 'ls' is crippled. We've clearly optimized the wrong thing. We should start with a complete system, not some minimized hack. I'm just saying it could be better. It could work at the early 1990's standards.
I saw somewhere that one can not uninstall 'busybox'. But, one can install the real 'grep', 'diff', 'find', 'xargs', etc., from .deb files and install them with 'apt-get -f' to force apt-get to ignore the obvious conflicts with 'busybox'. At some point, it's quite clear that the repository manager is working against us. And we continue to use it because it is sometimes convenient. This rant continues on about evil things like dependencies, shared libraries, and so on, but i'll stop now.
Quote & Reply
|
The Following User Says Thank You to suitti For This Useful Post:
Benson
suitti
View Public Profile
Send a private message to suitti
Find all posts by suitti