Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash tar:短缩所有未存档/提取的caps文件名_Bash_Debian_Embedded Linux_Tar_File Exists - Fatal编程技术网

Bash tar:短缩所有未存档/提取的caps文件名

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显示正在添加到存档的文

编辑

看到4ae1e1的建议后,我决定彻底修改我的帖子

我遇到了一个非常奇怪的问题,tar没有存档/提取具有短的、全大写名称的文件。我正在使用一台运行Debian Sarge的嵌入式PC和一个YAFFS2文件系统

我一直在尝试创建一个压缩的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