【发布时间】:2011-07-12 08:33:12
【问题描述】:
在一个单声道 exe 中,我正在创建包含以下代码的 .sh 脚本文件
tarcreator.sh:
tar -cvf /data/folder1/folder2/.../xyz.tar /data/...../tarHomeFolder/myTarFolder > /data/logs/tarLogs.txt
.... 代码继续。
这个 .sh 文件位于 /data/...../tarHomeFolder 中,在我的 .exe 中,我使用“bash 'full path of .sh file'”来调用它
当我以这种方式运行此代码时,它会创建 tar,但是当我打开 tar 时,我会看到根目录中的文件夹.. (data/..../tarHomeFolder/myTarFolder/.....)我希望我的 tar 仅包含其文件夹(myTarFolder)的目录结构。
然后我将代码更改为:
tar -cvf /data/folder1/folder2/.../xyz.tar myTarFolder > /data/logs/tarLogs.txt
知道 .sh 文件在 tarHomeFolder 中,但我的脚本没有告诉 myTarFolder 有这样的文件或目录 ..
当我在命令提示符中直接使用 tar 命令时,使用命令
tar -cvf /data/folder1/folder2/.../xyz.tar myTarFolder > /data/logs/tarLogs.txt
它会根据需要创建 tar 目录结构,那么,我怎样才能让它在我的由 mono .exe 创建和执行的 bash 文件中做同样的事情?
【问题讨论】:
-
我刚刚注意到为什么我没有这样的文件或目录错误,这是因为单声道 .exe 文件解释了相对于其自身路径的相对路径。 .exe 位于 /data/....../tarApps 中,当我更改它时,可以使用 cd ../tarHomeFolder 从 tarApps 访问 tarHomeFolder,它创建了 tar 文件,但这次 tar 的根目录被命名为“ ..\tarHomeFolder\myTarFolder......" 那么,这会改变您提供的任何建议吗?
标签: linux bash relative-path