ユーザ用ツール

サイト用ツール


サイドバー

最新の10件
一覧
linux:filesystem

**以前のリビジョンの文書です**

filesystem

tips

日本語ファイル名が長すぎて処理に失敗する

ファイルシステムは ext4。 ファイル名長はバイト単位なので、255文字まで。

$ while [ true ]; do     if ! touch $(printf "%${num}s"  | tr ' ' 'a');    then        echo $num;        break;    fi;    ((num++)); done
touch: cannot touch 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa': File name too long
256

UTF-8の日本語などは短くなる

$ num=1;str="あ";while :; do if ! touch $str;    then        echo $num;        break;    fi;    ((num++)); str="$strあ"; done
touch: cannot touch ''$'\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202': File name too long
86

今回の処理は数文字足りない程度なので惜しい……。そういえばNTFSやexFATはUnicodeで文字数を数えていた気がするので試してみる。

まずは一時的なexFAT領域を作る

$ dd if=/dev/zero of=./700M.img bs=1M count=700
$ fdisk ./700M.img
$ kpartx -av ./700M.img
$ sudo mkfs.exfat /dev/mapper/loop0p1
$ sudo mount /dev/mapper/loop0p1 /mnt

exfat領域で確認

$ num=1;str="あ";while :; do if ! touch $str;    then        echo $num;        break;    fi;    ((num++)); str="$strあ"; done
touch: cannot touch ''$'\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202\343\201\202': File name too long
256

今回はこれで回避した。

コメント

コメントを入力. Wiki文法が有効です:
   ____   ____   _  __  __  __   ____
  / __/  / __/  | |/_/ / / / /  /  _/
 / _/   / _/   _>  <  / /_/ /  _/ /  
/_/    /___/  /_/|_|  \____/  /___/
 
linux/filesystem.1579249342.txt.gz · 最終更新: 2020/01/17 17:22 by matoken