日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux與C語言實現(xiàn)rm命令(linuxc語言實現(xiàn)rm)

在Linux系統(tǒng)中,rm命令是一個非常常用的命令,用于刪除文件或目錄。如果沒有rm命令,那么Linux系統(tǒng)的使用會非常不方便。本文將介紹如何使用C語言來實現(xiàn)rm命令。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:成都網(wǎng)站設計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的陽新網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

一、rm命令的使用

rm命令用于刪除文件或目錄。其基本語法如下:

rm [參數(shù)] 文件或目錄

常用參數(shù)如下:

-r:遞歸刪除目錄及其子目錄;

-f:強制刪除,不提示用戶確認。

實例:

rm filename1:刪除文件filename1

rm –r dirname1:遞歸地刪除目錄dirname1及其所有子目錄和文件

rm –f filename1:強制刪除文件filename1,不需要確認

二、實現(xiàn)rm命令

使用C語言來實現(xiàn)rm命令需要使用到兩個系統(tǒng)調(diào)用,即unlink()和rmdir()。unlink()函數(shù)用于刪除一個文件,rmdir()函數(shù)用于刪除一個空目錄。

下面是C語言實現(xiàn)rm命令的流程:

1.獲取命令行中的文件路徑;

2.使用stat()函數(shù)獲取文件的屬性,并判斷文件是否存在以及是否是目錄;

3.如果是目錄,則使用opendir()函數(shù)打開目錄,并使用readdir()函數(shù)讀取目錄下的文件;

4.遞歸地刪除目錄下的所有文件和文件夾;

5.使用unlink()函數(shù)刪除文件或rmdir()函數(shù)刪除空目錄。

下面是一個簡單的C語言實現(xiàn)rm命令的代碼:

“`

#include

#include

#include

#include

#include

#include

// 遞歸地刪除目錄及其子目錄和文件

int rm_dir(const char *dir) {

DIR *dp;

struct dirent *entry;

struct stat statbuf;

if ((dp = opendir(dir)) == NULL) {

fprintf(stderr, “Cannot open directory: %s\n”, dir);

return -1;

}

chdir(dir);// 進入目錄

while ((entry = readdir(dp)) != NULL) {

lstat(entry->d_name, &statbuf);// 獲取文件信息

if (S_ISDIR(statbuf.st_mode)) {

if (strcmp(“.”, entry->d_name) == 0 || strcmp(“..”, entry->d_name) == 0) {

continue;

}

rm_dir(entry->d_name);// 遞歸刪除子目錄

} else {

unlink(entry->d_name);// 刪除文件

}

}

closedir(dp);// 關(guān)閉目錄

chdir(“..”);// 退出目錄

rmdir(dir);// 刪除空目錄

return 0;

}

int mn(int argc, char *argv[]) {

int i, ret;

struct stat statbuf;

if (argc

printf(“usage: %s file1 file2 file3 …\n”, argv[0]);

exit(1);

}

for (i = 1; i

if (stat(argv[i], &statbuf)

fprintf(stderr, “Cannot open file: %s\n”, argv[i]);

continue;

}

if (S_ISDIR(statbuf.st_mode)) {

ret = rm_dir(argv[i]);

if (ret == -1) {

fprintf(stderr, “Cannot delete directory: %s\n”, argv[i]);

}

} else {

unlink(argv[i]);

}

}

return 0;

}

“`

三、

成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220

linux如何使用rm命令快速刪除文件

rm命令用于刪除文件。

命令格式:rm 文件名

常用選項:

-f, –force 強制刪除。忽略不存在的文件,不提示確認

-i 在刪除前需要確認

-r, -R, –recursive 遞歸刪除目錄及其內(nèi)容

-v, –verbose 詳細顯示進行的步驟

默認時,rm 不會刪除目錄。使用–recursive(-r 或-R)選項可刪除每個給定的目錄,以及其下所有的內(nèi)容。

用法示例:刪除文件名為zhidao.txt的文件

$ rm zhidao.txt

rm -rf xxx 直接刪除文件、文件夾 按Tab鍵可以快速選擇文件

加個參數(shù)

linux rm命令怎么用

Linux rm命令是用于刪除一個文件或者目錄的,操作演示:

1、打開linux命令行,在上面輸入ls查看當前目錄下存在的文件,如下圖可以看到有一個1.txt

2、輸入rm 1.txt就刪除1.txt這個文件了

3、再次輸入ls后發(fā)現(xiàn)已經(jīng)看不到之前的1.txt了,說明已經(jīng)刪除了

[Linux]編寫一個簡單的C語言程序,編寫Makefile文件。

八 環(huán)境變量

8.1 查看環(huán)境變量

$ env ? 顯示所有的環(huán)境變量設置

$ echo $ENV_VARIABLE ? 顯示指定環(huán)境變量的設置

例:

$ echo $PATH

/bin:/etc:/usr/bin:/tcb/bin

8.2 設定環(huán)境變量

$ ENV_VARIABLE=XXX;export ENV_VARIABLE

例:

$ PATH=$PATH:$INFORMIXDIR/bin;export PATH ? 將環(huán)境變量PATH設定為原PATH值+$INFORMIXDIR/bin

8.3 取消環(huán)境變量設置

$ unset $ENV_VARIABLE

例:

$ set GZJ=gzj;export GZJ ? 設置環(huán)境變量GZJ

$ echo $GZJ

gzj ? 顯示環(huán)境變量值

$ unset $GZJ ? 取消環(huán)境變量GZJ的設置

$ echo $GZJ

? 已取消

一 makefile規(guī)則

makefile是一個make的規(guī)則描述腳本文件,包括四種類型行:目標行、命令行、宏定義行和make偽指令行(如“include”)。makefile文件中注釋以“#”開頭。當一行寫不下時,可以用續(xù)行符“\”轉(zhuǎn)入下一行。

1.1 目標行

目標行告訴make建立什么。它由一個目標名表后面跟冒號“:”,再跟一個依賴性表組成。

例:

example: depfile deptarget

該目標行指出目標example與depfile和deptarget有依賴關(guān)系,如果depfile或deptarget有修改,則重新生成目標。

example1 example2 example3: deptarget1 deptarget2 depfile

該目標行指出目標名表中的example1、example2、example3這三個各自獨立的目標是用相同的依賴列表和規(guī)則生顫激成的。

clean:

空的依賴列表說明目標clean沒有其他依賴關(guān)系。

目標行后續(xù)的以Tab 開始的行是指出目標的生成規(guī)則,該Tab字符不能以空格代替。例如:

example.o:example.c example.h

cc –c example.c

該例子指出目標example.o依賴于example.c和example.h。如果example.c或example.h其中之一改變了,就需要執(zhí)行命令cc –c example.c重新生成目標example.o。

可以用文件名模式匹配來自動為目標生成依賴表,如:

prog: *.c

以下是一個簡單的makefile的例子:

圖 1 最簡單的makefile例

make使用makefile文件時,從之一個目標開始掃描。上例中的之一個目標為all,所以目標clean不會自動被行知執(zhí)行,可以通過命令make clean來生成目標。

1.2 命令行

命令行用來定義生成目標的動作。

在目標行中分號“;”后面的文件都認為是一個命令,或者一行以Tab制表符開始的也是命令。

如在上面的makefile例中,第三行以Tab字符開始的cc命令即是一個命令行,說明要生成hello應執(zhí)行的命令。也可以寫成:hello:hello.o;cc –c hello –L…

一般情況下,命令行的命令會在標準輸出中回顯出來,如對上面的makefile執(zhí)行make時,標準輸出如下:

cc -c hello.c

cc -o hello -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello.o

cc -c hello1.c

cc -o hello1 -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello1.o

如果不希望命令本身回顯,可在命令前加@字符,如在上例中不希望回顯cc –c hello.c和cc –c hello1.c,可修改makefile文件如下:

圖 2 抑制回顯的makefile例

對該makefile文件執(zhí)行make時,標準輸出如下:

cc -o hello -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello.o

cc -o hello1 -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello1.o

可以看出,命令行前有@字符的不回顯。

1.3 宏定義茄帶襪行

在makefile中,可以使用宏定義減少用戶的輸入,例如上例中對hello和hello1的編譯選項均為“-L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11”,此時可以用宏來代替,如:

圖 3 使用宏定義的makefile例

宏定義的基本語法是:

name=value

在定義宏時,次序不重要。宏不需要在使用前定義。如果一個宏定義多次,則使用最后一次的定義值。

可以使用“$”字符和“()”或“{}”來引用宏,例如:

cc –o hello.o $(CCFLAGS) hello.o

也可以將一個宏賦值給另一個宏,但這樣的定義不能循環(huán)嵌套,如:

A=value1

B=value2

C=$(A) $(B)等價于C=value1 value2

1.4 偽指令

makefile大部分由宏定義行、命令行和目標行組成。第四種類型是make偽指令行。make偽指令沒有標準化,不同的make可能支持不同的偽指令集,使得makefile有一定的不兼容性。如果要考慮移植性問題,則要避免使用make偽指令。但有一些偽指令,如include,由于使用比較多,很多不同make都提供該偽指令。

1.4.1 偽指令include

該偽指令類似C語言中的#include,它允許一次編寫常用的定義并包括它。include偽指令必須在一行中,之一個元素必須是include,并且跟一個要包含的文件名,如:

include default.mk

1.4.2 偽指令“#”

“#”字符也是make的偽指令,它指出“#”后面的文件是注釋,如:

PROGNAME=test # define macro

#don’t modify this

二 后綴規(guī)則

2.1 雙后綴規(guī)則

在前面的makefile例中有許多重復內(nèi)容,例如,生成hello和hello1的命令類似,生成hello.o和hello1.o的命令也類似,除了編譯或鏈接的文件不一樣外,其它均相同,這時,我們就可以使用后綴規(guī)則。首先看一個雙后綴的例子:

圖 4 使用雙后綴規(guī)則的makefile例

后綴規(guī)則使用特殊的目標名“.SUFFIXES”。

之一行中.SUFFIXES的依賴表為空,用來清除原有的后綴規(guī)則,因為.SUFFIXES可以在makefile中多次使用,每一次都將新的后綴規(guī)則加入以前的后綴規(guī)則中。

第二行中指定后綴規(guī)則為“.c .o”,即表示將所有的.c文件轉(zhuǎn)換為.o文件。

第三行指定將.c文件轉(zhuǎn)換成.o文件的方法。$(CC)為make的預定義宏,其默認值為cc,$

#include

MODULE_LICENSE(“Dual BSD/GPL”);

static int hello_init(void)

{

printk(KERN_ALERT “Hello, world\n”);

return 0;

}

static void hello_exit(void)

{

printk(KERN_ALERT “Goodbye, cruel world\n”);

}

module_init(hello_init);

module_exit(hello_exit);

makefile:

# If KERNELRELEASE is defined, we’ve been invoked from the

# kernel build system and can use its language.

ifneq ($(KERNELRELEASE),)

obj-m := hello.o

# Otherwise we were called directly from the command

# line; invoke the kernel build system.

else

KERNELDIR ?= /lib/modules/$(shell uname -r)/build

PWD := $(shell pwd)

default:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

endif

這個已經(jīng)通過調(diào)試了!

//calculate.h

#ifndef DEFCALCULATE_H

#define DEFCALCULATE_H

#include

#include

#include

#include

using namespace std;

// =========================================================================

// = 一些標志,如數(shù)字、+-*/()

enum Token_value

{

NAME,

NUMBER,

END,

PLUS=’+’,

MINUS=’-‘,

MUL=’*’,

DIV=’/’,

PRINT=’;’,

ASSIGN=’=’,

LP='(‘,

RP=’)’

};

//#############################################################################

//#############################################################################

double term(bool); //乘法

double prim(bool); //處理初等項

double error(const string&); //錯誤函數(shù)羨雀

Token_value get_token(); //輸入

double expr(bool get); //加和減

//#############################################################################

//#############################################################################

extern double number_value; /寬殲/

extern string string_value; //

extern Token_value curr_tok; //當前操作標志

extern map table;//

extern int no_of_errors; //

#endif

//慎派沖winconsole.cpp

#include “calculate.h”

#include

istream* input;

int main()

{

//switch(argc)

//{

//case 1:

input=&cin;

// break;

//case 2:

// input=new istringstream(argv);

// break;

//default:

// error(“too many arguments”);

// return 1;

//}

table=3.14159;

table=2.718182;

while (*input)

{

get_token();

if (curr_tok==END)

{

break;

}

if (curr_tok==PRINT)

{

continue;

}

cout>ch;

switch(ch)

{

case 0:

return curr_tok=END;

case ‘;’:

case ‘*’:

case ‘/’:

case ‘+’:

case ‘-‘:

case ‘(‘:

case ‘)’:

case ‘=’:

return curr_tok=Token_value(ch);

case ‘0’:case ‘1’:case ‘2’:case ‘3’:case ‘4’:

case ‘5’:case ‘6’:case ‘7’:case ‘8’:case ‘9’:

case ‘.’:

cin.putback(ch);

cin>>number_value;

return curr_tok=NUMBER;

default:

if (isalpha(ch))

{

cin.putback(ch);

cin>>string_value;

return curr_tok=NAME;

}

error(“bad token”);

return curr_tok=PRINT;

}

}

//prim.cpp

#include “calculate.h”

double number_value;

string string_value;

map table;

double prim(bool get)

{

if (get)

{

get_token();

}

switch(curr_tok)

{

case NUMBER:

{

double v=number_value;

get_token();

return v;

}

case NAME:

{

double& v=table;

if (get_token()==ASSIGN)

{

v=expr(true);

}

return v;

}

case MINUS:

{

return -prim(true);

}

case LP:

{

double e=expr(true);

if (curr_tok!=RP)

{

return error(“)expected”);

}

get_token();

return e;

}

default:

return error(“primary expected”);

}

}

//term.cpp

#include “calculate.h”

double term(bool get)

{

double left=prim(get);

for (;;)

{

switch(curr_tok)

{

case MUL:

left*=prim(true);

break;

case DIV:

if (double d=prim(true))

{

left/=d;

break;

}

return error(“divide by 0”);

default:

return left;

}

}

}

//makefile

objects = error.o expr.o get_token.o prim.o term.o winconsole.o

calculate:$(objects)

g++ -Wall -g -o calculate $(objects)

$(objects) : %.o : %.cpp

g++ -c $(CXXFLAGS) $

關(guān)于linux c語言實現(xiàn)rm的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設計、網(wǎng)站建設、小程序制作、成都軟件開發(fā)、網(wǎng)頁設計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務,是專業(yè)的成都做小程序公司、成都網(wǎng)站建設公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。


網(wǎng)站欄目:Linux與C語言實現(xiàn)rm命令(linuxc語言實現(xiàn)rm)
網(wǎng)站鏈接:http://www.5511xx.com/article/dpcehjd.html