source和dest路径相同时的单行复制命令

时间:2013-02-06 20:50:28

标签: linux backup cp

我想在与当前目录不同的其他子目录中备份文件,如下所示:

cp /aaa/bbb/ccc/ddd/eeee/file.sh /aaa/bbb/ccc/ddd/eeee/file.sh.old

如您所见,源目录和目标目录相同,因此常见的惯例是更改为公共目录,执行副本im ./,然后更改回原始目录。

在这种情况下是否有单行命令来完成复制?

1 个答案:

答案 0 :(得分:2)

是。使用此:

cp /aaa/bbb/ccc/ddd/eeee/{file.sh,file.sh.old}

花括号将导致字符串的第一部分重复用于以逗号分隔的每个项目。 Bash将以上内容扩展为两个单独的路径,然后将其传递给cp。要查看Bash将传递给cp的内容,只需在开头添加echo

echo cp /aaa/bbb/ccc/ddd/eeee/{file.sh,file.sh.old}

您将看到它产生您的原始陈述:

cp /aaa/bbb/ccc/ddd/eeee/file.sh /aaa/bbb/ccc/ddd/eeee/file.sh.old

你只是使用Bash技巧来节省打字。