利用shell腳本批量複製文件到給定目錄

還是工作中的一堆爛事.有時候你在Linux下要導出一批文件,但是用大包命令發現Linux提示你沒有權限,或者說解壓的時候軟件提示你權限不夠.

這時候方法不外乎:

    方法一:一個一個文件的打開,然後手動複製出來,天哪!!!

   方法二:使用腳本批量複製到給定目錄


我們討論方法二.

首先,我們按照Linux的提示,或者解壓軟件的提示,吧那些權限不夠的文件和路徑給複製出來到一個文件中,比如tmpfile.txt.我的文件如下

\http\tcp\map\baidu-UD-MIB.txt
\http\tcp\tools\dbd\fkcp_fkc.c
\http\tcp\map\baidu-UD-MIB.txt
\http\tcp\tools\dbd\fkcp_fkc.c
\http\tcp\map\baidu-UD-MIB.txt
\http\tcp\tools\dbd\fkcp_fkc.c
\http\tcp\map\baidu-UD-MIB.txt
\http\tcp\tools\dbd\fkcp_fkc.c
\http\tcp\map\baidu-UD-MIB.txt
\http\tcp\tools\dbd\fkcp_fkc.c
\http\tcp\map\baidu-UD-MIB.txt
\http\tcp\tools\dbd\fkcp_fkc.c
\http\tcp\map\baidu-UD-MIB.txt
\http\tcp\tools\dbd\fkcp_fkc.c

注意:上面是windows的格式,需要把斜線換成反斜線.

把該文件放到\http路徑下面.在該路徑下創建腳本,比如file2copy.sh

#!/bin/bash
cat tmpfile.txt | while read line
do
        filename=`basename $line`;
        echo $filename
#       touch /home/xj/temp/$filename
        cp $line /home/xj/temp/$filename
done

第二行:讀取tmpfile.txt文件,每次一行,吧讀出的內容保存到line中.

do循環處理每一行line內容.首先使用basename提取沒有前綴的文件名(關於basename請百度一下);

然後echo語句打印當前正在操作的文件;

cp命令將單籤文件複製到給定的目錄下.

完畢!


//我知道實踐這個方法的人會看到輸出錯誤,腳本是沒有問題的,但是我確實有一點沒說到.而且看起來一點都不難發現問題所在.請在看到輸出的問題的時候想一想原因.

發佈了57 篇原創文章 · 獲贊 21 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章