我想通过shell命令动态的将一些文件压缩在一起。请问tar命令后最多能连接多少长度的字符串啊?
发布网友
发布时间:2022-05-18 04:23
我来回答
共2个回答
热心网友
时间:2023-10-09 05:29
自己测试吧,这个跟文件系统相关,我的是ext4的分区,好像最多允许128位长的文件名;
512长度测试:
tar cvzf 10010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626.tar.gz dic.txt
tar (child): 100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264262526626.tar.gz:无法 open: 文件名过长
128长度测试,没有错误:
$ tar cvzf 100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139.tar.gz dic.txt
dic.txt
qunero@qunero-Ubuntu-desktop ~
256长度测试,成功了,257的失败!:
$ tar cvzf 10010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118.tar.gz dic.txt
dic.txt追问我x存储的是文件名字····我不是问文件名最多能多长,是x最多能存储多长···也就是tar 的最后一个参数的长度(⊙o⊙)
追答这个不是很明显么,x中每一个文件名*为256,个数没有*,也就是x本身的长度没有*。比如:
touch {1,2,3}{0..9}{0..9}.txt
x=`ls`
echo $x
---------echo 输出------------
100.txt 101.txt 102.txt 103.txt 104.txt 105.txt 106.txt 107.txt 108.txt 109.txt 110.txt 111.txt 112.txt 113.txt 114.txt 115.txt 116.txt 117.txt 118.txt 119.txt 120.txt 121.txt 122.txt 123.txt
...
388.txt 389.txt 390.txt 391.txt 392.txt 393.txt 394.txt 395.txt 396.txt 397.txt 398.txt 399.txt
----------------输出结束-------
tar czf a.tgz $x
这个没有问题。$x内容为300个文件,每一个长度为7。
热心网友
时间:2023-10-09 05:29
变量x能保存多少,完全取决于你的内存。
所以你不要在乎能保存多少,足够你用了。追问他和内存之间是个什么样的关系呢?
是这样的,我发现我的变量存储大概一CRT屏幕的字符串就
在打印这个字符串变量就变成空字符串了。
追答具体能容纳多少,我也不知道。几屏应该没问题。
估计是你没存上。变量的值是往内存里调度啊。当然你内存有多大,你存变量就能有多大啦。