What do I mean by "alphabetize", since the "ls" command already lists files in alphabetical order? Your "alphabetize" script will create a sub-directory for each (relevant) letter of the alphabet, and move all the files whose names start with "a" into the "a" subdirectory, all the "b" files into the "b" subdirectory, etc. The "dealphabetize" script will move all the files in all the subdirectories up into this directory, then delete the (now-empty) subdirectories.
panther% ls afile another file1 file2 file3 file6 x-file panther% alphabetize panther% ls -F a/ f/ x/ panther% ls a afile another panther% ls f file1 file2 file3 file6 panther% ls x x-file panther% dealphabetize . panther% ls afile another file1 file2 file3 file6 x-file
Both "alphabetize" and "dealphabetize" should take one optional argument, indicating what directory to work on. If this optional argument is omitted, it should default to "." (the current directory).
The basic program should be able to handle filenames starting with any lower-case letter.
Note: the "dealphabetize" half is probably easier; do it first. I'm not sure which of the extra credit features are easier than which.
Another note: for either half of the assignment you may need to work inside a temporary subdirectory, which you should delete as soon as you're done.
A third note: This is a difficult assignment. Start working on it now.