【问题标题】:how to rename a file in a directory using current directory如何使用当前目录重命名目录中的文件
【发布时间】:2017-11-20 15:09:10
【问题描述】:

我想重命名一个文件(home/Desktop/ali/a/b.txt)

我写了一个 bash 文件

#!/bin/bash

mv a/b.txt a/c.txt

把它放在ali目录下,我在终端导航到ali目录,但是当我执行bash文件时找不到a/b.txt

我知道mv home/Desktop/ali/a/b.txt home/Desktop/ali/a/c.txt 可以正常工作,但是有没有办法使用当前目录来缩短寻址时间?

【问题讨论】:

  • 您可以使用大括号扩展... mv home/Desktop/folder2/a/{b,c}.txt .. 不确定您使用当前目录的意思
  • 我的意思是,因为我在终端的“ali”目录中,有没有什么办法可以让我的脚本找到 a/b.txt 而没有在脚本中提供完整地址(home/Desktop/folder2/a /b.txt)?
  • 如果你在"ali"目录下,你会发现你确实可以使用短路径ls -l a/b.txt
  • 感谢您的回复!所以我应该尝试: mv ls -l a/b.txt a/c.txt ?
  • 抱歉错了,ali=folder2

标签: bash renaming


【解决方案1】:

如果你想mv一个本地文件,只需将目录留空:

mv a/test.py a/test1.py

无论如何,您都可以使用pwd,但请记住,您需要在同一个目录中运行脚本!

mv `pwd`/a/test.py `pwd`/a/test1.py

【讨论】:

  • 感谢您的回复!这正是我想要的,而且效果很好。
【解决方案2】:

如果您在该目录中,则无需提供位置。

例如,您在桌面上有文件 A,因此您可以在那里导航并执行以下操作:

mv A B

文件A在该目录中被重命名为B

但如果你想从另一个位置这样做,那么你就这样做

mv directory/A directory/newfilename

【讨论】:

    【解决方案3】:

    如果你从 Ali 目录运行脚本,那么你的 mv 语句看起来像

    mv `pwd`/a/test.py `pwd`/a/test1.py
    

    mv ./a/test.py ./a/test1.py
    

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 2018-12-07
      • 2016-07-09
      • 2021-03-25
      • 2016-04-11
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多