Ubantu 中创建CP文件命令复制文件(笔记)

本文介绍了如何通过C语言编写一个简单的命令行工具,实现从一个文本文件复制内容到另一个文件的功能,包括使用`fopen`、`fread`和`fwrite`等文件操作函数,以及使用GCC编译器进行编译和执行。
摘要由CSDN通过智能技术生成

学习新手,写的是学习的笔记

一、先写一个简单的文件cp命令

1、先创建一个文件夹,放置自己写的文件命令mkdir my_cp

  切换到my_cp文件夹下

vim 1.txt 创建1.txt文件

里面写入内容HELLO,再ESC  :wq保存退出。

2、创建vim my_cp.c文件,里面写可以把1.txt文本复制到2.txt文本的命令

3、再gcc编译刚刚写好的c文件,因为没有安装gcc,所以需要先安装 sudo apt install gcc

安装好gcc后,再编译 gcc my_cp.c

gcc my_cp.c:这条命令使用GCC编译器(GNU Compiler Collection)来编译名为my_cp.c的C语言源文件。如果源文件没有错误,GCC将生成一个名为a.out的可执行文件。


ls:这是一个列出当前目录中文件的命令。在这个上下文中,它应该显示刚刚由GCC编译器生成的可执行文件a.out。


./a.out:这条命令用于执行刚刚由GCC编译器生成的可执行文件a.out。如果my_cp.c中的C代码没有语法错误,并且程序逻辑正确,那么a.out将运行并执行C代码中的指令,完成把1.txt的内容复制到2.txt文本中。

ls 再次查看,看到复制出现的2.txt文本

cat 2.txt 这个命令会显示文件2.txt的内容并在终端上显示出来。如果文件不存在,你将看到一个错误消息。,可以看到1.txt里面的内容被完整复制到2.txt中

二、活的cp命令文件,可以实现

vim my_cp.c

#include <stdio.h>

int main(int argc , char *argv[])
{
        char buff[1024]={0};
        FILE *fp1 = fopen(argv[1],"r");
        if (fp1==NULL){
                perror("Error opening input file");
                return -1;

        }
        FILE *fp2 = fopen(argv[2],"w");
        if(fp2==NULL){
                perror("Error opening output file");
                fclose(fp1);
                return -1;
}
        while(1)
        {
                int fr = fread(buff,1,1024,fp1);
                if(fr==0)
                {
                        break;
                }
                fwrite(buff,1,fr,fp2);
        }
        fclose(fp1);
 fclose(fp2);
        return 0;
}

运行结果截图: 

最后写了一个有复制功能的文件命令出来

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu,你可以使用cp命令复制文件。例如,如果要将一个文件复制到另一个位置,可以使用以下命令cp [文件路径/文件名 [目标文件夹路径] 如果要复制一个文件夹(包括其的所有内容),可以使用以下命令cp -r [文件夹路径/文件夹名 [目标文件夹路径] 请注意,如果目标文件夹路径与源文件夹路径相同,则会在目标文件夹创建一个新的副本。如果目标文件夹路径不存在,则会创建一个新的目标文件夹。 总结起来,在Ubuntu复制文件的指令是"cp",可以使用该指令将文件文件夹复制到指定的目标位置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ubuntu复制、移动文件及目录命令](https://blog.csdn.net/qq_41474121/article/details/120678971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [移动or复制文件(夹) - ubuntu操作命令](https://blog.csdn.net/weixin_37950717/article/details/125222738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [复制文件(汇编语言实现)](https://download.csdn.net/download/softgsy/1260628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值