我正在尝试创建一个脚本,该脚本将从目录中复制文件并将复制的文件放入新目录。
我知道cp
命令会复制文件而mkdir
命令会创建目录,但是有人知道如何将这两个命令组合成一行吗?
到目前为止我已经
了mkdir /root/newdir/ cp /root/*.doc /root/newdir
这会给出错误消息
mkdir: cannot create directory 'cp': Files exists
mkdir: cannot create directory '/root/files/wp.doc: File exists
mkdir: cannot create directory 'mkdir' : File exists
mkdir: cannot create directory '/root/files/new dir: file exists
然而,它确实创建了目录newdir
答案 0 :(得分:8)
mkdir -p /root/newdir/ && cp /root/*.doc /root/newdir/
这将调用mkdir
来创建目录结构,检查命令执行是否成功,如果是,则调用cp
命令。
答案 1 :(得分:2)
mkdir /root/newdir/; cp /root/*.doc /root/newdir
答案 2 :(得分:0)
在两个命令之间放置分号
答案 3 :(得分:0)
这是因为您没有告诉shell命令的确切位置。在这种情况下:
mkdir /root/newdir/ cp /root/*.doc /root/newdir
您的命令cp
将作为mkdir
命令的参数,shell尝试将文件命名为cp
。所有其他情况也是如此。
将;
命令放在后面。它告诉shell命令已经结束,下一个字是另一个命令。
换行符(返回键)也被视为命令seprator。因此,如果您将每个命令放在下一行,它也可以正常工作。 所以你可以尝试其中任何一个:
mkdir /root/newdir/ ; cp /root/*.doc /root/newdir
OR
mkdir /root/newdir/
cp /root/*.doc /root/newdir