「:(コロン)」を含むファイル名に注意

Windowsで「:(コロン)」をファイル名に含めることはできませんが、Linux/UNIX上では可能です。

Linuxサーバ上にある「:(コロン)」を含むファイルを含めて圧縮したものを、Windows上でLhaplusを使用して解凍すると「:(コロン)」を含むファイル名のファイルが失われてしまいます。

#しかも、Lhaplusの解凍結果ログにはその旨が出力されない!

Linuxサーバ上で「:(コロン)」は置換しておくべき、という事でしょうか。

#!/bin/sh

files=(`ls`)
for old_name in ${files[*]}
do
    new_name=`echo ${old_name} | sed 's/\:/_/g'`
    if [ ${old_name} != ${new_name} ]; then
        mv ${old_name} ${new_name}
    fi
done
exit 0
#!/usr/bin/perl

use strict;
use warnings;

my @files =`ls`;

foreach my $old_name (@files) {
    chomp $old_name;
    my $new_name = $old_name;
    $new_name =~ s/:/_/g;
    rename "$old_name", "$new_name" if $old_name ne $new_name;
}
exit 0


追記(2008/2/19)

ていうか、これでおk。

rename \: _ *