请教各路大侠:如何用linux指令把一个文件写入另一个文件?写入而不是覆盖?

请教各路大侠:如何用linux指令把一个文件写入另一个文件?写入而不是覆盖?,第1张

1、cp命令功能是将给出的文件或目录拷贝到另一文件或目录中,它不能显示文件的内容。

cp [选项] 源文件或目录 目标文件或目录

2、cat 命令会在屏幕上显示整个文件的内容,果文件较长,它会在屏幕上飞快地滚过。要防止这一效果的发生,使用 cat filename.txt | less 命令。一起使用管道(|)和 less 命令会一页一页地显示文件。然后,你便可以使用向上或向下的箭头键在页码中向前或向后移动。关于使用管道来合并两个不同功能的详细信息。

把 >符号放在 cat 命令之后(或在任何写入标准输出的工具程序和应用程序之后),会把它的输出重导向到跟在符号之后的文件中。如cat>test3.txt 命令会创建test3.txt文件并把cat的输出重导向文件test3.txt文件中。注意 :

在你把输出重导向入文件时,请谨慎从事,因为你会很容易地覆盖一个现存文件!除非你想代替该文件,请确保你所创建的文件名与已经存在的文件名不一样。

你可以使用 cat 来读取文件,如cat test3.txt表示读取文件test3.txt中的内容。

当你使用 >>时,你是在给文件添加信息,而不是完全替换文件内容。如,cat test.txt >>test1.txt命令之后,会在test2.txt文件的结尾处添加test.txt的内容,即把文件 test.txt 的输出后补到文件 test2.txt 中去。

你可以使用文件追加重定向 “>>” *** 作。

[root@XXX home]# echo aaa >test

[root@XXX home]# echo bbb>test2

[root@XXX home]# cat test

aaa

[root@XXX home]# cat test2

bbb

[root@XXX home]# cat test >>test2

[root@XXX home]# cat test2

bbb

aaa

问题:

cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当文件比较少的时候还可以按Y确认,当很多文件的时候就不好说了。用下面的方法可以解决覆盖提示的问题。

例如:把zongguofeng目录下的文件复制到linuxzgf目录

cp:是否覆盖“linuxzgf/1.txt”?

执行上面的命令时,linuxzgf文件夹中存在的每个文件都会提示是否覆盖

cp:是否覆盖“linuxzgf/1.txt”?

加了-f了,依然有此提示。

服务器上查找后发现在默认的系统中是加了别名如下:

可以看到当执行cp的时候,其实执行的是cp -i参数。

解决办法:

方法一:修改bashrc文件禁用掉cp的alias

在alias cp='cp -i'前加上"#"注释,重新登录即可实现复制不提示。

方法二:直接输入命令即可实现

软件bug。linux是一个 *** 作系统,或者说是一个 *** 作系统最底层的核心,这个核心可以管理整个计算机的硬件。当该系统出现软件bug时,会导致复制目录内容不提示覆盖,解决方法为,使用电脑管家修复即可。该系统稳定性高,多人多任务的环境设计优良,要求配备较低等优点。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7629576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存