函数与相对路径输入正常工作但不与绝对路径输入一起工作

时间:2011-01-12 19:13:20

标签: linux bash path relative-path absolute-path

存在一个作为软件包(MRICro)一部分的函数,它被称为'dcm2nii。'

当相对路径用作输出目录时,该功能可以很好地工作。

但是,当使用完全相同文件夹的绝对路径时,该功能会崩溃。

示例(绝对路径):

dcm2nii -o /net/user1/project_name/Data/2011_01_10_SVD1/Processed/3_fMRI_rest E2538S3I00*

示例(相对路径):

dcm2nii -o ../Processed/3_fMRI_rest E2538S3I00*

使用输出文件夹的绝对路径时出现示例错误消息(最后一行表示无法创建输出文件):

Validating 52 potential DICOM images.
Found 52 DICOM images.
Converting 52/52  2
E2538S3I0001.MR.dcm->20110110_112950E2538S3I0001MRFPSD1F29OCT2010RCs003a1001.nii
GZip 20110110_112950E2538S3I0001MRFPSD1F29OCT2010RCs003a1001.nii
unable to create /net/user1/project_name/Data/2011_01_10_SVD1/Processed/3_fMRI_rest/20110110_112950E2538S3I0001MRFPSD1F29OCT2010RCs003a1001.nii.gz

我不知道这个问题是由于我在Linux / bash中做错了还是因为函数实际上有错误。

但是,任何意见都表示赞赏。

在更一般的层面上,我正在寻找任何可预见的原因,为什么函数能够使用相对文件夹路径而不是绝对路径(假设它们解析到同一位置)。

编辑:pwd给出: /净/ USER1 / PROJECT_NAME /数据/ 2011_01_10_SVD1 / 3_fMRI_rest

2 个答案:

答案 0 :(得分:0)

在我们告诉您问题的原因之前,您真的必须向我们展示代码,不过您描述的行为是可能的

这是一个不良做法的例子,但请考虑以下

#!/bin/bash
....
current_dir = $(pwd)
out_dir = $1
cd ${somewhere}
..... do stuff
#no we want to come back to create the output dir
mkdir ${current_dir}/$out_dir

答案 1 :(得分:0)

这似乎是某种错误..我遇到了同样的问题。如果我尝试对我的主文件夹中的数据执行此命令,则会出现相同的错误。

但是,如果我将数据移动到不涉及任何扩展的路径,即&#39; / tmp / data&#39;&#39;,程序执行正常。< / p>