我需要重命名多层嵌套目录中的文件,这是一个很长的位置;我会使用mv
命令。
我想通过仅输入一次完整位置来节省时间。
移动文件时有没有办法缩短目标目录?
我将用一个例子更好地解释它:
mv /dir1/dir2/dir3/dir4/dir5/file.txt /dir1/dir2/dir3/dir4/dir5/moved_file.txt
--->mv /dir1/dir2/dir3/dir4/dir5/file.txt moved_file.txt
答案1
使用cd
将工作目录更改为/dir1/dir2/dir3/dir4/dir5
,然后调用mv
.在子 shell 中执行此操作,以避免必须cd
返回到原始目录(工作目录的更改是(...)
子 shell 本地的)。
( cd /dir1/dir2/dir3/dir4/dir5 && mv file.txt moved_file.txt )
如果由于某种原因失败,还会&&
导致mv
不执行。cd
答案2
在缺乏识别路径和文件名的编程方法的情况下......
SRC=/dir1/dir2/dir3/dir4/dir5
DEST=/dirA/dirB/dirC/dirD
mv "$SRC"/file.txt "$DEST"/moved_file.txt
或者,只是为了重命名......
mv "$SRC"/file.txt "$SRC"/moved_file.txt