Re: Trouble moving directory
| From: | Brent Baisley | Date: | Fri, 14 Oct 2005 14:46:49 +0000 |
| Subject: | Re: Trouble moving directory | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-224130@lists.php.net to get a copy of this message | ||
MSFT allowed spaces? They were behind in allowing spaces (and long file names) Apple allowed them far before MS, and Unix allowed spaces far before Apple. Unix just assumes a space is a command/parameter delimiter first and part of the name second. Just like multiplication takes precedence over addition unless you use parenthesis, a space takes precedence as a delimiter unless you use quotes.
Spaces are permitted, underscores just means you don't have to use quotes to explain what you mean. It's like saying Unix doesn't allow you to use capitals in the file name because it won't find "filename" it you type "FileName". It's a feature of a case sensitive file system available in most forms of Unix. It also caused a lot of confusion and frustration to people developing web sites under Windows and posting to a Unix host.
Telling users to use underscores is a work around that works as long and everyone uses underscores all the time. It's still better to have knowledge of what's going on and why so when one does encounter a file name with a space they know how to reference it.
I would say one of the lousiest things MSFT did was reversing the / to reference paths in DOS.
On Oct 14, 2005, at 9:28 AM, Miles Thompson wrote:
One of the "nice" things MSFT did was to allow spaces in directory and file names. It created more work for programmers. One of the LOUSIEST things MSFT did was allowing spaces in directory and file names, because of the needless, tedious parsing and checking it requires. So much simpler to train users that computers are dumb and trip over spaces, so just use an underscore where you want to separate words. Funny thing, users accept that. Glad I got that off my chest - Miles At 10:11 AM 10/14/2005, Brent Baisley wrote:-- Brent Baisley Systems Architect Landover Associates, Inc. Search & Advisory Services for Advanced Technology Environments p: 212.759.6400/800.759.0577In your example, the problem is that the name has spaces, which the shell uses as a delimiter. So "That Won't Move/" is kind of being considered parameters instead of part of the dir. Using the command line (i.e. shell/terminal) will give you more feedback as to what is happening (/some/dir/Dir: No such Directory). You need to either escape the characters or enclose it in quotes. For me, I always find it easier to just enclose directory names in quotes. $source_dir = '"/some/dir/Dir That Won't Move/"'; On Oct 12, 2005, at 10:11 PM, -k. wrote:--PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.phpI'm having trouble moving some directories. My script works fine on some directories but doesn't move others. It seems to have trouble with directories with non alphanumeric charters. I'm running Red Hat FC2. I'm trying to move the directory basically like this... <?Php $source_dir = '/some/dir/Dir That Won't Move/'; $dest_dir = '/some/other/dir/' $cmd = escapeshellcmd("mv ".$source_dir." ".$dest_dir); $result = shell_exec($cmd); ?> Is there some way to escape the characters in the directories? For example if i put a "\" in front of blank spaces it takes care of those (same for "'","(" etc.) but that obviously doesn't take care of everything. I'm hoping there is something easy i'm overlooking here that will escape all the characters. -k. __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php-- Brent Baisley Systems Architect Landover Associates, Inc. Search & Advisory Services for Advanced Technology Environments p: 212.759.6400/800.759.0577 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php