欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

linux的拷貝命令行 linux中拷貝文件的命令是什么?

linuxcp命令并顯示拷貝時(shí)間

在Linux系統(tǒng)里面用到 cp命令復(fù)制不能顯示文件拷貝的進(jìn)度,也不能計(jì)算還有多長時(shí)間文件可以 拷貝結(jié)束,現(xiàn)在寫一個(gè)程序可以顯示文件拷貝的進(jìn)度。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括亞東網(wǎng)站建設(shè)、亞東網(wǎng)站制作、亞東網(wǎng)頁制作以及亞東網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,亞東網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到亞東省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

思路:當(dāng)前目錄下面有一個(gè)1G大小的bigfile文件

當(dāng)我在命令行下面輸入ls -lh bigfile,我會得到這個(gè)文件的詳細(xì)信息,當(dāng)然也可以看到文件的大小。

ls -lh bigfile

-rw-rw-r-- 1 nii nii 1000M 7月 13 19:41 bigfile

我們可以用popen函數(shù),把執(zhí)行之后的結(jié)果”-rw-rw-r– 1 nii nii 1000M 7月 13 19:41 bigfil”這串字符串接收下來,我們可以提取出來表示文件大小的那段字符串,比如這個(gè)我們可以提取”1000”在用atoi函數(shù),把字符串轉(zhuǎn)換為int型數(shù)值1000(不了解popen函數(shù)和atoi函數(shù)的請自行學(xué)習(xí)),就可以獲得文件大小。

例如我的文件名字叫mycp.c,我執(zhí)行g(shù)cc -o mycp mycp.c生成一個(gè)mycp的可執(zhí)行文件。

接下來我在命令行上輸入./mycp bigfile destbigfile把當(dāng)前目錄下面的bigfile文件拷貝為destbigfile,這時(shí)我產(chǎn)生一個(gè)子進(jìn)程,子進(jìn)程負(fù)責(zé)調(diào)用系統(tǒng)的cp命令拷貝,父進(jìn)程每隔一秒鐘,去獲取destbigfile、bigfile 文件的大小,就可以知道拷貝的進(jìn)度,當(dāng)然也可以獲得拷貝的時(shí)間,就可以計(jì)算出來離拷貝結(jié)束還有多長時(shí)間。

下面是代碼的實(shí)現(xiàn):

#include

#include

#include

#include

#include

#include

#include

/** 得到文件的詳細(xì)信息 */

int getFileMsg(char* pchCmd,char *pchMsg);

int main(int argc,char* argv[])

{

char szSrcFileMsg[150] = {0};

char szSrcFileSizeMsg[10] = {0};

int nSrcFileSize = 0;

char szSDestFileMsg[150] = {0};

char szDestFileSizeMsg[10] = {0};

int nDestFileSize = 0;

int pid = 0;

/** shell執(zhí)行的命令 ,在創(chuàng)建文件的時(shí)候使用*/

char szExcueCommand[150] = {0};

float fRate = 0;

int nUsedTime = 0;

float nLastTime = 0;

/** 入?yún)⒈仨毷侨齻€(gè) */

if (1 == argc)

{

printf("please input the src and des file\n");

return -1;

}

/** 產(chǎn)生子進(jìn)程 */

pid = fork();

/** 如果是子進(jìn)程,負(fù)責(zé)執(zhí)行復(fù)制命令 */

if (0 == pid)

{

sprintf(szExcueCommand,"%s %s %s","cp",argv[1],argv[2]);

printf("%s\n",szExcueCommand);

system(szExcueCommand);

return 0;

}

/** 父進(jìn)程負(fù)責(zé)把正在復(fù)制的原文件和復(fù)制的目標(biāo)文件的大小計(jì)算出來,就可以知道復(fù)制的進(jìn)度,計(jì)算頻率為1秒一次 */

else

{

/** 獲得原文件的大小 */

if (-1 == getFileMsg(argv[1],szSrcFileMsg))

{

printf("get sorce file message failed \n");

return -1;

}

/** 把原文件大小的信息取出來 */

strncpy(szSrcFileSizeMsg,szSrcFileMsg+21,4);

szSrcFileSizeMsg[5] = '\0';

nSrcFileSize = atoi(szSrcFileSizeMsg);

while(1)

{

sleep(1);

nUsedTime ++;

/** 獲得目標(biāo)文件的大小 */

if (-1 == getFileMsg(argv[2],szSDestFileMsg))

{

printf("get dest file message failed \n");

return -1;

}

/** 把原文件大小的信息取出來 */

strncpy(szDestFileSizeMsg,szSDestFileMsg+21,4);

szDestFileSizeMsg[5] = '\0';

nDestFileSize = atoi(szDestFileSizeMsg);

/*** 計(jì)算復(fù)制的進(jìn)度 */

fRate = (nDestFileSize * 100) / nSrcFileSize ;

/** 計(jì)算剩下的時(shí)間 */

nLastTime = ((100 - fRate) * nUsedTime) / fRate;

/** 打印進(jìn)度條 */

printf("已復(fù)制 %.2f %% 還需要 %.1f 秒\n",fRate,nLastTime);

/** 復(fù)制完成之后,退出循環(huán) */

if (nSrcFileSize == nDestFileSize)

{

printf("復(fù)制完成,耗時(shí) %d 秒\n",nUsedTime);

break;

}

}

}

return 0;

}

/** 得到文件的詳細(xì)信息 */

int getFileMsg(char* pchCmd,char *pchMsg)

{

FILE *fstream=NULL;

char szBuff[BUFSIZ] = {0};

char szExcueCommand[150] = {"ls -lh"};

sprintf(szExcueCommand,"%s %s",szExcueCommand,pchCmd);

if (NULL==(fstream=popen(szExcueCommand,"r")))

{

perror("execute command failed: ");

return -1;

}

/** 得到命令的結(jié)果 */

if (NULL == fgets(szBuff, sizeof(szBuff), fstream))

{

pclose(fstream);

return -1;

}

pclose(fstream);

strcpy(pchMsg,szBuff);

return 0;

}

Linux下執(zhí)行結(jié)果為:

./mycp bigfile destbigfile

cp bigfile destbigfile

已復(fù)制 3.00 % 還需要 32.3 秒

已復(fù)制 5.00 % 還需要 38.0 秒

已復(fù)制 8.00 % 還需要 34.5 秒

已復(fù)制 10.00 % 還需要 36.0 秒

已復(fù)制 12.00 % 還需要 36.7 秒

已復(fù)制 13.00 % 還需要 40.2 秒

已復(fù)制 14.00 % 還需要 43.0 秒

已復(fù)制 17.00 % 還需要 39.1 秒

已復(fù)制 20.00 % 還需要 36.0 秒

已復(fù)制 21.00 % 還需要 37.6 秒

已復(fù)制 24.00 % 還需要 34.8 秒

已復(fù)制 24.00 % 還需要 38.0 秒

已復(fù)制 27.00 % 還需要 35.1 秒

已復(fù)制 32.00 % 還需要 29.8 秒

已復(fù)制 33.00 % 還需要 30.5 秒

已復(fù)制 35.00 % 還需要 29.7 秒

已復(fù)制 38.00 % 還需要 27.7 秒

已復(fù)制 41.00 % 還需要 25.9 秒

已復(fù)制 42.00 % 還需要 26.2 秒

已復(fù)制 43.00 % 還需要 26.5 秒

已復(fù)制 44.00 % 還需要 26.7 秒

已復(fù)制 48.00 % 還需要 23.8 秒

已復(fù)制 50.00 % 還需要 23.0 秒

已復(fù)制 52.00 % 還需要 22.2 秒

已復(fù)制 53.00 % 還需要 22.2 秒

已復(fù)制 53.00 % 還需要 23.1 秒

已復(fù)制 57.00 % 還需要 20.4 秒

已復(fù)制 59.00 % 還需要 19.5 秒

已復(fù)制 61.00 % 還需要 18.5 秒

已復(fù)制 63.00 % 還需要 17.6 秒

已復(fù)制 63.00 % 還需要 18.2 秒

已復(fù)制 66.00 % 還需要 16.5 秒

已復(fù)制 69.00 % 還需要 14.8 秒

已復(fù)制 70.00 % 還需要 14.6 秒

已復(fù)制 72.00 % 還需要 13.6 秒

已復(fù)制 73.00 % 還需要 13.3 秒

已復(fù)制 75.00 % 還需要 12.3 秒

已復(fù)制 78.00 % 還需要 10.7 秒

已復(fù)制 79.00 % 還需要 10.4 秒

已復(fù)制 82.00 % 還需要 8.8 秒

已復(fù)制 83.00 % 還需要 8.4 秒

已復(fù)制 84.00 % 還需要 8.0 秒

已復(fù)制 87.00 % 還需要 6.4 秒

已復(fù)制 90.00 % 還需要 4.9 秒

已復(fù)制 91.00 % 還需要 4.5 秒

已復(fù)制 93.00 % 還需要 3.5 秒

已復(fù)制 93.00 % 還需要 3.5 秒

已復(fù)制 96.00 % 還需要 2.0 秒

已復(fù)制 99.00 % 還需要 0.5 秒

已復(fù)制 100.00 % 還需要 0.0 秒

復(fù)制完成,耗時(shí) 50 秒

linux文件拷貝命令

cp命令可以拷貝 -r 包括下級 例如 復(fù)制aaa目錄 cp -r aaa/具體可以看看《linux就該這么學(xué)》

Linux系統(tǒng)中拷貝非空文件夾MyDir到/tmp下并保留原始文件屬性的命令是

linux拷貝文件夾命令——CP命令。

格式:CP[選項(xiàng)]源文件或目錄目的文件或目錄。

選項(xiàng)說明:-b同名,備分原來的文件。-f強(qiáng)制覆蓋同名文件。-r按遞歸方式保留原目錄結(jié)構(gòu)復(fù)制文件。

linux使用命令行將一個(gè)文件的某一行復(fù)制到另一個(gè)文件中

上述方法無法復(fù)制原始文本中的一些符號。

上述方法先打印后復(fù)制,可以將符號復(fù)制過去。

[1] linux命令模式下怎么把一個(gè)文本中的一行復(fù)制到另一個(gè)文本中?

[2] Linux里如何用管道和重新定向把一個(gè)文本里的指定行復(fù)制到另一個(gè)文本里去?

Linux復(fù)制命令什么操作

Linux復(fù)制命令用cp來進(jìn)行復(fù)制操作。

1、首先需要打開Linux系統(tǒng),如圖所示,進(jìn)入到主目錄。

2、在主目錄中創(chuàng)建一個(gè)students目錄,命令:mkdir students來做演示。

3、進(jìn)入到students目錄中,如圖所示,再創(chuàng)建兩個(gè)目錄。

4、進(jìn)入到fuzhi1目錄,用touch命令創(chuàng)建一個(gè)6.JPG文件。

5、用cp命令將6.JPG文件移動(dòng)到fuzhi2目錄中。

6、用cd ~/students/fuzhi2命令進(jìn)入到fuzhi2目錄中。

7、最后,用ls命令檢查JPG文件成功復(fù)制到fuzhi2目錄,這樣操作就可以看到已經(jīng)復(fù)制成功。

Linux文件拷貝命令?

常用的命令為# cp命令

方式一:對文件進(jìn)行copy:

#cp object_file source_file

方式二:對目錄下文件進(jìn)行copt:

#cp -r object_file source_file

補(bǔ)充cp的參數(shù):

用法:cp [選項(xiàng)]... [-T] 源文件 目標(biāo)文件

或:cp [選項(xiàng)]... 源文件... 目錄

或:cp [選項(xiàng)]... -t 目錄 源文件...

將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€(gè)源文件復(fù)制至目標(biāo)目錄。

長選項(xiàng)必須使用的參數(shù)對于短選項(xiàng)時(shí)也是必需使用的。

-a, --archive 等于-dR --preserve=all

--backup[=CONTROL 為每個(gè)已存在的目標(biāo)文件創(chuàng)建備份

-b 類似--backup 但不接受參數(shù)

--copy-contents 在遞歸處理是復(fù)制特殊文件內(nèi)容

-d 等于--no-dereference --preserve=links

-f, --force 如果目標(biāo)文件無法打開則將其移除并重試(當(dāng) -n 選項(xiàng)

存在時(shí)則不需再選此項(xiàng))

-i, --interactive 覆蓋前詢問(使前面的 -n 選項(xiàng)失效)

-H 跟隨源文件中的命令行符號鏈接

-l, --link 鏈接文件而不復(fù)制

-L, --dereference 總是跟隨符號鏈接

-n, --no-clobber 不要覆蓋已存在的文件(使前面的 -i 選項(xiàng)失效)

-P, --no-dereference 不跟隨源文件中的符號鏈接

-p 等于--preserve=模式,所有權(quán),時(shí)間戳。《Linux就該這么學(xué)》里有相關(guān)介紹,建議看看。

網(wǎng)頁題目:linux的拷貝命令行 linux中拷貝文件的命令是什么?
轉(zhuǎn)載注明:http://chinadenli.net/article2/hgpgoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化品牌網(wǎng)站設(shè)計(jì)定制網(wǎng)站軟件開發(fā)營銷型網(wǎng)站建設(shè)搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)