bashでunixで使えない文字を探してみる

bashunixで使えない文字を探してみる
まあ、「/」なのは明らかなんだけど…つい組んでみたかった。

結論。「/」を含むファイル名と 「.」と「..」が使えない。(と、思う)

注意。これを実験する時には 「--」とか消すのがめんどいので別途ディレクトリを掘っておいた方がいい。

$ for i in {33..126} ; do j="" ;j=`printf "%02x" $i` ; k=`printf "\x$j"`; echo -n "$k"; : > "$k" ; done;echo
!"#$%&'()*+,-.bash: .: Is a directory
/bash: /: Is a directory
0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
$ ls
!  %  )  -  3  7  ;  ?  C  G  K  O  S  W  [  _  c  g  k  o  s  w  {
"  &  *  0  4  8  <  @  D  H  L  P  T  X  \  `  d  h  l  p  t  x  |
#  '  +  1  5  9  =  A  E  I  M  Q  U  Y  ]  a  e  i  m  q  u  y  }
$  (  ,  2  6  :  >  B  F  J  N  R  V  Z  ^  b  f  j  n  r  v  z  ~

そうか、一文字だと「.」はだめだわな。
じゃあ、繰り返しだと「..」がだめか。

$ for i in {33..126} ; do j="" ;j=`printf "%02x" $i` ; k=`printf "\x$j"`; echo -n "$k"; : > "$k$k" ; done;echo
!"#$%&'()*+,-.bash: ..: Is a directory
/bash: //: Is a directory
0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
$ ls
!!  &&  ++  22  77  <<  AA  FF  KK  PP  UU  ZZ  __  dd  ii  nn  ss  xx  }}
""  ''  ,,  33  88  ==  BB  GG  LL  QQ  VV  [[  ``  ee  jj  oo  tt  yy  ~~
##  ((  --  44  99  >>  CC  HH  MM  RR  WW  \\  aa  ff  kk  pp  uu  zz
$$  ))  00  55  ::  ??  DD  II  NN  SS  XX  ]]  bb  gg  ll  qq  vv  {{
%%  **  11  66  ;;  @@  EE  JJ  OO  TT  YY  ^^  cc  hh  mm  rr  ww  ||

3文字でも「...」はだめだ…なぜだろう。

$ for i in {33..126} ; do j="" ;j=`printf "%02x" $i` ; k=`printf "\x$j"`; : > "$k$k$k" ; done;echo
bash: ///: Is a directory

$ ls
!!!  '''  --   444  :::  @@@  FFF  LLL  RRR  XXX  ^^^  ddd  jjj  ppp  vvv  |||
"""  (((  ---  555  ;;;  AAA  GGG  MMM  SSS  YYY  ___  eee  kkk  qqq  www  }}}
###  )))  000  666  <<<  BBB  HHH  NNN  TTT  ZZZ  ```  fff  lll  rrr  xxx  ~~~
$$$  ***  111  777  ===  CCC  III  OOO  UUU  [[[  aaa  ggg  mmm  sss  yyy
%%%  +++  222  888  >>>  DDD  JJJ  PPP  VVV  \\\  bbb  hhh  nnn  ttt  zzz
&&&  ,,,  333  999  ???  EEE  KKK  QQQ  WWW  ]]]  ccc  iii  ooo  uuu  {{{

ををっ。なぜだこれ。はじめて知った。

$ touch ..ab
$ ls
$

とおもったら ls -aしわすれてた。(笑

$ ls -a
.  ..  ...  ....  ..a  ..ab

めでたし、めでたし。