我经常需要对当前工作目录下嵌套的几个目录中的文件进行一些小更改。由于它只是一个文件,并且通配符/脚本编写太过分了,所以我手动进行更改。
例如,我需要将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
值得一试。