来自windows,通过7z生成的tar文件。我遇到一些长文件名有问题:
tar: xxxxxxx: Cannot open: File name too long
Linux(或tar?)似乎对文件名有256个字符的限制。很公平。我试图使用--xform
选项限制长度:
tar -x --xform 's/^\(.\{200\}\).*/\1/' -f japanese.tar
但这不起作用。 sed表达式正在运行:
$ echo whateverwhateverwhateverwhateverwhateverwhateverwhatever | sed -e 's/^\(.\{10\}\).*/\1/'
whateverwh
tar不支持sed表达式吗?还有其他缩短名字的方法吗?
答案 0 :(得分:1)
您在表达式中排除了文件扩展名。你能尝试一下吗?
tar -x --xform 's/^\(.\{200\}\).*\(\.[^.]*\)/\1\2/' -f japanese.tar
例如:
user@host:/tmp/test$ echo whateverwhateverwhateverwhateverwhateverwhateverwhatever.txt | sed -e 's/^\(.\{10\}\).*/\1/'
whateverwh
user@host:/tmp/test$ echo whateverwhateverwhateverwhateverwhateverwhateverwhatever.txt | sed 's/^\(.\{10\}\).*\(\.[^.]*\)/\1\2/'
whateverwh.txt