我想在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
解决此问题的最佳方法是什么?
答案 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
。