【问题标题】:Move files between two very 'different' locations in bash在 bash 中两个非常“不同”的位置之间移动文件
【发布时间】:2016-02-02 10:30:41
【问题描述】:

我想在 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

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

【问题讨论】:

  • @123:注意cygwin 标签。
  • 您是否使用tab 进行自动补全?
  • 我可以使用tab 进行自动补全。
  • 这些目录总是相同的吗?
  • 不,就是这样。这将是从一个到另一个的一次性移动,所以我不想编写脚本来做到这一点。

标签: linux bash shell terminal cygwin


【解决方案1】:

你有

#!/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

【讨论】:

  • 我也在想类似的事情,但是如果我不想写脚本怎么办?
  • 如果您不想编写脚本,您可以将路径变量存储在 .bashrc 文件中。顺便说一句,在脚本中更改路径变量比在进入 .bashrc 文件
  • 好的,有没有办法导航到一个目录,将该目录保存为会话中的临时变量,导航到第二个目录,将其保存为临时变量,然后使用这两个?
  • 你可以这样做,即 cd /tmp/myPath/123/456/;导出临时文件夹=$PWD; cd /tmp/myPath2/123/789/;导出 tempFolder2=$PWD;触摸 $tempFolder/fileName.txt; mv $tempFolder/fileName.txt $tempFolder2; ls -ltr $tempFolder $tempFolder2
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2011-01-31
    相关资源
    最近更新 更多