您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何編寫shell腳本實現在Linux下不同路徑之間的文件進行剪切操作的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
需求描述
編寫shell腳本實現Linux下不同目錄(路徑)之間的文件的剪切(移動)操作。
其中,文件移動之前所在的目錄稱為源目錄,文件移動之后所在的目錄稱為目的目錄。要求當源目錄不存在、源目錄下無文件及剪切文件成功時,均要在屏幕上輸出相關的日志信息;并且,在程序執行之前,只有源目錄是存在的,目的目錄需要由程序創建。
shell腳本
umask 0000 if [ -d $1 ] then fcnt=`ls -l $1 | wc -l` if [ $fcnt -ne 1 ] then mkdir -p $2 if [ -d $2 ] then mv $1* $2 echo "move $fcnt file(s) from $1 to $2 successfully!" else echo "$2 does not exist!!!" fi else echo "$1 is empty!" fi else echo "$1 does notexist!!!" fi
腳本說明
針對本shell腳本(命名為movefile.sh),說明如下:
第一,腳本第一行“umask 0000”表示賦予程序訪問文件的權限,因為后續要對文件進行剪切操作,所以必須要有對文件的操作權限才行。
第二,執行腳本的時候,要輸入兩個參數,第一個表示源文件目錄,第二個表示目的目錄。具體到腳本中,變量$1表示源文件目錄,變量$2表示目的目錄。
第三,本腳本的主要流程是這樣的:首先判斷源文件目錄是否存在,如果不存在,則直接打印源目錄不存在的消息;如果存在,則獲取源目錄下的文件數目,如果文件數為0,那么表示無需要剪切的文件,那么直接打印源目錄下無文件的消息;如果文件數大于0,那么就創建目的目錄,并在目的目錄創建成功的情況下之行文件的剪切操作。
第四,執行本腳本的命令格式為:sh movefile.sh 源文件目錄 目的目錄。注意,兩個目錄均要以/結束。
腳本執行
將movefile.sh腳本上傳到Linux機器上,然后對它進行測試。
第一,當源文件目錄不存在時,執行情況如下:
~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/ /home/zhou/movefile/srcdir/ does notexist!!!
第二,當源文件目錄下無文件時,執行情況如下:
~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/ /home/zhou/movefile/srcdir/ is empty!
第三,當源文件目錄下有1個文件時,執行情況如下:
~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/ move 1 file(s) from /home/zhou/movefile/srcdir/ to /home/zhou/movefile/destdir/ successfully!
第四,當源文件目錄下有10個文件時,執行情況如下:
~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/ move 10 file(s) from /home/zhou/movefile/srcdir/ to /home/zhou/movefile/destdir/ successfully!
感謝各位的閱讀!關于“如何編寫shell腳本實現在Linux下不同路徑之間的文件進行剪切操作”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。