![](/img/trans.png)
[英]In a shell script, how can you combine both `Rscript` and `Unix` commands?
[英]How to combine shell commands
我正在嘗試創建一個腳本,該腳本將從目錄中復制文件並將復制的文件放入新目錄中。
我知道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
mkdir -p /root/newdir/ && cp /root/*.doc /root/newdir/
這將調用mkdir
來創建目錄結構,檢查命令執行是否成功,如果是,則調用cp
命令。
mkdir /root/newdir/; cp /root/*.doc /root/newdir
發生這種情況是因為您沒有告訴shell命令的確切位置。 在這種情況下:
mkdir /root/newdir/ cp /root/*.doc /root/newdir
您的命令cp
將作為mkdir
命令的參數,shell嘗試將該文件命名為cp
。 所有其他情況也是如此。
通過把;
在命令之后。 它告訴shell命令已經結束,下一個字是另一個命令。
換行符(返回鍵)也被視為命令seprator。 因此,如果您將每個命令放在下一行,它也可以正常工作。 所以你可以嘗試以下任何一種:
mkdir /root/newdir/ ; cp /root/*.doc /root/newdir
要么
mkdir /root/newdir/
cp /root/*.doc /root/newdir
在兩個命令之間放置分號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.