Glob patterns are always expanded. No restrictions are applied. See also bin/check-glob-pattens.sh.
mkdir -p glob-check
cd glob-check || exit 1
touch echo
touch file1
touch file2
touch file3
The command:
ls -l
shows the available files:
insgesamt 0
-rw-rw-r-- 1 da da 0 Okt 23 13:03 echo
-rw-rw-r-- 1 da da 0 Okt 23 13:03 file1
-rw-rw-r-- 1 da da 0 Okt 23 13:03 file2
-rw-rw-r-- 1 da da 0 Okt 23 13:03 file3
Command execution of:
echo *
results in:
echo file1 file2 file3
Expanding the wildcard:
*
results in:
echo file1 file2 file3
which is executed and results in:
file1 file2 file3
If a glob pattern does not match, the glob pattern is used unexpanded:
for _file in not_here*
do
pecho "${_file}"
done
Output:
not_here*
file1
file2
file3
If non-existent file should be ignored, an explicit test is necessary:
for _file in not_here* file*
do
test -r "${_file}" || continue
pecho "${_file}"
done
Output:
file1
file2
file3
Using ls(1) is another possibliity, (but it does not work if filenames contain whitespace):
for _file in $( ls -1 not_here* file* 2>/dev/null )
do
pecho "${_file}"
done
Output:
file1
file2
file3
The directory separator is always illegal. Which character is used for directory separation depends on the filesystem.
OS | Win 95/98 | Win 2000+ | Mac OS 9 | Mac OS X | Unix/Linux |
---|---|---|---|---|---|
File System | FAT 32 | NTFS | HFS + | HFS+/UFS | UFS |
Max Char. | 255 | 256 | 31 | 255 | 255 |
Max Path. | 260 | 260 | |||
Restricted | “*/\:<>?| | “*/\:<>?| | : | /: | / |
Directory Separator | \ | \ | : | : | / |
Case Sensitivity | NO | NO | NO | NO | YES |
Soure: File Systems - HFS+, UFS, FAT32 and NTFS, Operating Systems, Maximum Characters Allowed Comparison
7 bit can encode the characters from 0 - 127.
Table columns are: character, decimal, octal, hexadecimal, PS name, ASCII name.
Illegal characters (for any file system) are marked with the name ILLEGAL.
Printable characters starts after SPACE:
[ ] : 32 : 040 : x20 .
and end before DEL:
[^?] : 127 : 177 : x7F : : DEL .
Printable characters are therefore
[ ] : 32 : 040 : x20 .
[!] : 33 : 041 : x21 .
["] : 34 : 042 : x22 : : ILLEGAL .
[#] : 35 : 043 : x23 .
[$] : 36 : 044 : x24 .
[%] : 37 : 045 : x25 .
[&] : 38 : 046 : x26 .
['] : 39 : 047 : x27 .
[(] : 40 : 050 : x28 .
[)] : 41 : 051 : x29 .
[*] : 42 : 052 : x2A : : ILLEGAL .
[+] : 43 : 053 : x2B .
[,] : 44 : 054 : x2C .
[-] : 45 : 055 : x2D .
[.] : 46 : 056 : x2E .
[/] : 47 : 057 : x2F : : ILLEGAL .
[0] : 48 : 060 : x30 .
[1] : 49 : 061 : x31 .
[2] : 50 : 062 : x32 .
[3] : 51 : 063 : x33 .
[4] : 52 : 064 : x34 .
[5] : 53 : 065 : x35 .
[6] : 54 : 066 : x36 .
[7] : 55 : 067 : x37 .
[8] : 56 : 070 : x38 .
[9] : 57 : 071 : x39 .
[:] : 58 : 072 : x3A : : ILLEGAL .
[;] : 59 : 073 : x3B .
[<] : 60 : 074 : x3C : : ILLEGAL .
[=] : 61 : 075 : x3D .
[>] : 62 : 076 : x3E : : ILLEGAL .
[?] : 63 : 077 : x3F : : ILLEGAL .
[@] : 64 : 100 : x40 .
[A] : 65 : 101 : x41 .
[B] : 66 : 102 : x42 .
[C] : 67 : 103 : x43 .
[D] : 68 : 104 : x44 .
[E] : 69 : 105 : x45 .
[F] : 70 : 106 : x46 .
[G] : 71 : 107 : x47 .
[H] : 72 : 110 : x48 .
[I] : 73 : 111 : x49 .
[J] : 74 : 112 : x4A .
[K] : 75 : 113 : x4B .
[L] : 76 : 114 : x4C .
[M] : 77 : 115 : x4D .
[N] : 78 : 116 : x4E .
[O] : 79 : 117 : x4F .
[P] : 80 : 120 : x50 .
[Q] : 81 : 121 : x51 .
[R] : 82 : 122 : x52 .
[S] : 83 : 123 : x53 .
[T] : 84 : 124 : x54 .
[U] : 85 : 125 : x55 .
[V] : 86 : 126 : x56 .
[W] : 87 : 127 : x57 .
[X] : 88 : 130 : x58 .
[Y] : 89 : 131 : x59 .
[Z] : 90 : 132 : x5A .
[[] : 91 : 133 : x5B .
[\] : 92 : 134 : x5C : : ILLEGAL .
[]] : 93 : 135 : x5D .
[^] : 94 : 136 : x5E .
[_] : 95 : 137 : x5F .
[`] : 96 : 140 : x60 .
[a] : 97 : 141 : x61 .
[b] : 98 : 142 : x62 .
[c] : 99 : 143 : x63 .
[d] : 100 : 144 : x64 .
[e] : 101 : 145 : x65 .
[f] : 102 : 146 : x66 .
[g] : 103 : 147 : x67 .
[h] : 104 : 150 : x68 .
[i] : 105 : 151 : x69 .
[j] : 106 : 152 : x6A .
[k] : 107 : 153 : x6B .
[l] : 108 : 154 : x6C .
[m] : 109 : 155 : x6D .
[n] : 110 : 156 : x6E .
[o] : 111 : 157 : x6F .
[p] : 112 : 160 : x70 .
[q] : 113 : 161 : x71 .
[r] : 114 : 162 : x72 .
[s] : 115 : 163 : x73 .
[t] : 116 : 164 : x74 .
[u] : 117 : 165 : x75 .
[v] : 118 : 166 : x76 .
[w] : 119 : 167 : x77 .
[x] : 120 : 170 : x78 .
[y] : 121 : 171 : x79 .
[z] : 122 : 172 : x7A .
[{] : 123 : 173 : x7B .
[|] : 124 : 174 : x7C : : ILLEGAL .
[}] : 125 : 175 : x7D .
[~] : 126 : 176 : x7E .