簡體   English   中英

如何組合shell命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM