Why do pathnames containing a wildcard work in the tcsh shell regardless of the target filesystem, but do not work in the sh shell if the target filesystem is FAT32?

The following sequence begins in the tcsh shell by mounting a FAT32 partition from a USB thumb drive. /tmp is in a UFS2 partition. There are no files with "fish" in their names in either location. This is happening in FreeBSD 7.0-RELEASE. Why do the last four commands not have the same result?

    tcsh# mount_msdosfs /dev/da0s1 /mnt
    tcsh# rm -f /tmp/fish*
    rm: No match.
    tcsh# rm -f /tmp/*fish
    rm: No match.
    tcsh# rm -f /mnt/fish*
    rm: No match.
    tcsh# rm -f /mnt/*fish
    rm: No match.
    tcsh# sh
    sh# rm -f /tmp/fish*
    sh# rm -f /tmp/*fish
    sh# rm -f /mnt/fish*
    rm: /mnt/fish*: Invalid argument
    sh# rm -f /mnt/*fish
    rm: /mnt/*fish: Invalid argument

FWIW, the context of this discovery was trying to use the grub-install script from the GRUB port to install its boot loader on a FAT32 thumb drive. The script aborts when it attempts something like "rm -f /mnt/boot/grub/*stage1_5"

Carl                                             / K0802647
freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to