Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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
如何在linux中使用zip命令使文件夹具有短路径?_Linux_Zip_Compression_Redhat - Fatal编程技术网

如何在linux中使用zip命令使文件夹具有短路径?

如何在linux中使用zip命令使文件夹具有短路径?,linux,zip,compression,redhat,Linux,Zip,Compression,Redhat,我在linux(RedHat)中使用了命令zip,这是我的命令: zip -r /home/username/folder/compress/zip.zip /home/username/folder/compressed/* 然后,我打开文件zip.zip,我看到架构是路径文件夹压缩 我想在文件夹zip中只包含列表文件*.txt 因为我在脚本crontab中使用了这个命令,所以我不能在运行命令zip之前使用命令cd来路径文件夹 zip -jr /home/username/folder/co

我在linux(RedHat)中使用了命令zip,这是我的命令:

zip -r /home/username/folder/compress/zip.zip /home/username/folder/compressed/*
然后,我打开文件zip.zip,我看到架构是路径文件夹压缩

我想在文件夹zip中只包含列表文件*.txt

因为我在脚本crontab中使用了这个命令,所以我不能在运行命令zip之前使用命令cd来路径文件夹

zip -jr /home/username/folder/compress/zip.zip /home/username/folder/compressed/*

请帮助我

我浏览了zip手册页,这是我找到的。没有相对于其他目录的存档文件选项。我找到的最接近的是
zip-j
,它删除了整个路径,并将文件直接存储在zip中,而不是子目录中。我不知道在文件名冲突的情况下会发生什么,例如
/home/username/folder/compressed/a.txt
/home/username/folder/compressed/subdir/a.txt
都存在。如果这对您来说不是问题,您可以使用此选项,但我很担心,因为您确实指定了
-r
选项,指示希望zip遍历子文件夹

我还想到了脚本可以用不同的工作目录调用zip的可能性,但我看了一下,它们的选项似乎使用了
cd


我不得不承认,我不明白你为什么不能使用
cd
,我对此很好奇。您提到了使用crontab,但我从来没有听说过在crontab脚本中更改目录有什么问题。

我在命令zip中使用了option-j

zip -jr /home/username/folder/compress/zip.zip /home/username/folder/compressed/*

我已经解决了这个问题,谢谢

你能把
cd
放到目录中然后
cd
回来吗?不,我在文件夹/home中运行command zip,不使用command cd,我希望运行command zip而不是使用command cd