Bash tar:短缩所有未存档/提取的caps文件名
编辑 看到4ae1e1的建议后,我决定彻底修改我的帖子 我遇到了一个非常奇怪的问题,tar没有存档/提取具有短的、全大写名称的文件。我正在使用一台运行Debian Sarge的嵌入式PC和一个YAFFS2文件系统 我一直在尝试创建一个压缩的tar归档文件,其中包含一个全大写的三个字母长的文件(Bash tar:短缩所有未存档/提取的caps文件名,bash,debian,embedded-linux,tar,file-exists,Bash,Debian,Embedded Linux,Tar,File Exists,编辑 看到4ae1e1的建议后,我决定彻底修改我的帖子 我遇到了一个非常奇怪的问题,tar没有存档/提取具有短的、全大写名称的文件。我正在使用一台运行Debian Sarge的嵌入式PC和一个YAFFS2文件系统 我一直在尝试创建一个压缩的tar归档文件,其中包含一个全大写的三个字母长的文件(AAA)。在我的工作目录中创建名为AAA的文本文件后,我使用以下命令创建归档文件: tar cvzf "/home/Update.tgz" ./* ./AAA 正如您所看到的,tar显示正在添加到存档的文
AAA
)。在我的工作目录中创建名为AAA
的文本文件后,我使用以下命令创建归档文件:
tar cvzf "/home/Update.tgz" ./*
./AAA
正如您所看到的,tar显示正在添加到存档的文件,tar返回0
表示成功。当我尝试使用以下命令将存档解压缩到文件夹/temp
:
tar zxf "/home/Update.tgz" -C "/temp"
未提取文件AAA
。tar再次返回0
,表示提取成功。运行ls
显示文件AAA
在/temp
中不存在
真正奇怪的是,如果我将原始文件AAA
重命名为AAA
并重新创建归档文件,则可以成功提取该文件
在发现这个错误后,我尝试了许多不同的文件名,每个文件名都是大写的,长度不超过三个字符,都显示了这个问题。有人见过类似的问题吗?我非常感谢任何人能就这个问题提供任何信息
谢谢 我试图通过在
文件名=(“test1”“Aaa”“Aaa”)
之后添加touch$SRC\u PATH/test1$SRC\u PATH/Aaa$SRC\u PATH/Aaa来重现错误,并删除带有RESULT和CALCSUM的行。我无法复制。您能将脚本简化为再现错误的最小情况吗?我知道您不想从2.05升级,但您能在较新版本的bash
中再现问题吗?可能,但是,如果没有大量繁忙的工作,将嵌入式平台设置为使用apt get
或手动安装新版本,就无法实现我的预期目标。当我回到办公室时,我将尝试在我的工作站上运行脚本,看看是否可以在那里重现错误。您的新测试用例非常容易使用,谢谢!您是否也可以添加一个ls“$FILE”
或ls/temp
来显示文件在那里,然后使用bash-x yourscript运行并粘贴完整的输出?好的,现在我真的很困惑。起初运行我的简化代码会导致一个错误,但现在我可以让它正常工作了。在用户登录之前在启动时运行测试脚本会导致+文件=/temp/AAA+ls/temp/AAA/temp/AAA+[-f/temp/AAA]]+echo'>/temp/AAA found'>/temp/AAA found