如何在没有完整路径的情况下复制文件夹和父文件夹

时间:2012-03-29 15:28:46

标签: linux copy parent local cp

这是一个基本问题,但我很难找到一个合适的解决方案。这阻碍了我的脚本自动化。

我有以下路径。

/home/hassan/Dyna/ProjectSimulation

在项目模拟中我有3个文件夹

friction time force

/home/hassan/Dyna/ProjectSimulation/friction

现在我在这个摩擦文件夹中有一个文件friction1.txt,我想把它复制到ProjectSimulation。

是否可以避免完整路径而只需一步下来?

此外,如果我必须将此friction1.txt复制到文件夹强制,那么无论如何都要避免完整路径。

我的意思是我有一个子程序,但这是路径依赖的,每当我运行它时,我必须在同一个文件夹中运行然后复制我的结果,这样我才能只运行一个模拟实例。

专家请指导我。

PS:这是600线外壳的一部分。

3 个答案:

答案 0 :(得分:12)

这是基本的,我必须误解你的问题。

如果要引用父目录,..就是这样做的方法。所以,如果你想将friction1.txt复制到你刚才做的两个地方

cp friction1.txt ..
cp friction1.txt ../force

您需要注意的是确保CWD

/home/hassan/Dyna/ProjectSimulation/friction

以便引用指向正确的位置。

答案 1 :(得分:0)

您可以暂时将当前目录更改为ProjectSimulation,复制文件(cp friction/friction1.txt .),然后将路径更改回原始路径(以便脚本的其余部分像以前一样工作)

或者,您可以使用dirname获取父目录的名称并使用它。

答案 2 :(得分:0)

更改为已知目录结构的根目录。然后使用相对路径执行复制操作。然后换回你来自你的目录。

你的朋友是:

cd
cd -

或更好:

pushd
popd

(参见man bash)

pushd /home/hassan/Dyna/ProjectSimulation
cp friction/friction1.txt .
cp friction/friction1.txt force
popd