還是工作中的一堆爛事.有時候你在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命令將單籤文件複製到給定的目錄下.
完畢!
//我知道實踐這個方法的人會看到輸出錯誤,腳本是沒有問題的,但是我確實有一點沒說到.而且看起來一點都不難發現問題所在.請在看到輸出的問題的時候想一想原因.