重命名另一个目录中的文件而不重复路径

重命名另一个目录中的文件而不重复路径

我经常需要对当前工作目录下嵌套的几个目录中的文件进行一些小更改。由于它只是一个文件,并且通配符/脚本编写太过分了,所以我手动进行更改。

例如,我需要将blaz.txt./foo/bar/blee 中的文件重命名为foobar.txt

. 
|--foo
  |--bar
     | blee
       |-- blaz.txt

通常,我通过cd“查找blee并运行mv blaz.txt foobar.txt单个文件”来完成此操作。我知道我可以输入完整路径(依靠一些方便的选项卡完成来加快速度),但我更喜欢更快的东西。

有一个更好的方法吗?

答案1

带大括号扩展:

mv foo/bar/blee/{blaz,foobar}.txt

答案2

> touch tmp/foo/bar/baz
> rename baz boo tmp/foo/bar/baz
> ls -l tmp/foo/bar/
total 0
-rw-r--r-- 1 hl hauke 0 May 29 23:08 boo

答案3

您可以使用子 shell。

( cd foo/bar/blee ; mv blaz.txt boo.txt )

但我必须+1 大括号的例子。这是极好的。

答案4

如果它最终没有变得太混乱,您应该能够创建一个符号链接并将命令传递给它本身。

创建符号链接的指南:http://www.cyberciti.biz/faq/creating-soft-link-or-symbolic-link/

从下面的评论更新: ln -s /directory/thats/super/long/and/a/pita/ /etc/goats/然后mv /etc/goats/foo.txt /etc/goats/bar.txt 值得一试。

相关内容