在两个非常不同的'之间移动文件。 bash中的位置

时间:2016-02-02 10:30:42

标签: linux bash shell terminal cygwin

我想在Bash中动态地在两个位置之间移动文件,但它们保存在两个完全不同的位置。

例如,如果我的第一个文件位于:

C:/This/Folder/Is/At/A/Very/Different/Location/file.txt

我的第二个档案是:

C:/To/This/Folder/Which/Is/Somewhere/Else/Completely

我基本上想要执行类似的事情:

mv C:/This/Folder/Is/At/A/Very/Different/Location/file.txt C:/To/This/Folder/Which/Is/Somewhere/Else/Completely

但是我希望在我去的时候这样做,并且不想输入整个文件路径。我可以在每个目录中复制并粘贴文件路径,但是想知道是否有更好的方法来执行此操作。

我的第一个冲动是导航到第一个文件夹,然后将当前目录保存为变量,然后导航到第二个文件夹,将当前目录保存为变量并执行以下操作:

mv $firstFolder $secondFolder

解决此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

你有

#!/bin/ksh
#store  your folder1 path in a variable 
folder1="C:/This/Folder/Is/At/A/Very/Different/Location/"

#store  your folder2 path in a variable 
folder2="C:/To/This/Folder/Which/Is/Somewhere/Else/Completely"

#store filename as input paramenter or hardcoded filename (as you like)
fileName="${1}" 
#fileName="myFileToMove.txt"

mv ${folder1}/${fileName} ${folder2}

#or mv ${folder2}/${fileName} ${folder1}

此致

C

答案 1 :(得分:0)

如果文件夹名称的路径足够独特,您可以使用类似

的内容
mv C:/This/**/Location/file.txt C:/To/**/Completely

毋庸置疑,如果可以在两个不同的源路径中找到名为file.txt的文件,则最终会移动两个文件。因此,我要使用-i或-n或-v与mv