Linux下如何使CP命令不提示覆盖 rm 确认提示后删除

Linux下如何使CP命令不提示覆盖 rm 确认提示后删除,第1张

我们先来看一下原因吧!

一般我们使用的命令是cp

-rf

sourcefile

targetdir或cp

-r

-f

sourcefile

targetdir,

-r的意思是递归复制,也就是复制文件夹及其下所有文件

-f的意思是遇到同名的文件,不提示,直接覆盖

这是因为,系统在安装的时候使用了别名,防止我们误 *** 作,覆盖了不该覆盖的文件。使用别名命令就可以看到具体的配置了。

[test@Server

home]#

alias

alias

cp='cp

-i'

alias

l.='ls

-d

.*

--color=tty'

alias

ll='ls

-l

--color=tty'

alias

ls='ls

--color=tty'

alias

mv='mv

-i'

alias

rm='rm

-i'

alias

which='alias

|

/usr/bin/which

--tty-only

--read-alias

--show-dot

--show-tilde'

从上边我们可以看出,我们输入的cp命令,其实是“cp

-i”命令,

从上边的命令我们可以知道,其他几个命令,也使用了别名,例如ll,ls

mv,rm等。

[test@Server

home]#

vi

~/.bashrc#

.bashrc#

User

specific

aliases

and

functions

alias

rm='rm

-i'

alias

cp='cp

-i'

alias

mv='mv

-i'

#

Source

global

definitions

if

[

-f

/etc/bashrc

]

then

.

/etc/bashrcfi

只要在相应的命令前加#号,就可以注释掉该命令了。保存退出,然后你就可以用纯粹的原命令了。

在Linux下使用CP命令,经常会提示是否覆盖,如果是太批量的文件覆盖,老是这么提示,会很烦的。那如何解决这个问题呢? 我们先来看一下原因吧! 一般我们使用的命令是cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir, -r的意思是递归复制,也就是复制文件夹及其下所有文件 -f的意思是遇到同名的文件,不提示,直接覆盖 但为什么我们用这两个参数,系统还是会提示覆盖呢? 这是因为,系统在安装的时候使用了别名,防止我们误 *** 作,覆盖了不该覆盖的文件。使用别名命令就可以看到具体的配置了。[test@Server home]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls --color=tty'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 从上边我们可以看出,我们输入的cp命令,其实是“cp -i”命令, 也就是不管我们怎么输入 cp -rf,其实执行的是 cp -i -rf , 也无怪乎总是提问是否覆盖了。 从上边的命令我们可以知道,其他几个命令,也使用了别名,例如ll,ls mv,rm等。 那么如何解决这个问题呢?[test@Server home]# vi ~/.bashrc

# .bashrc# User specific aliases and functionsalias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'# Source global definitions

. /etc/bashrcfi只要在相应的命令前加#号,就可以注释掉该命令了。保存退出,然后你就可以用纯粹的原命令了。 其实还有一种办法可以解决这个问题,就是使用 \cp -f file dir 就可以了!

1. shred – 覆盖文件以隐藏内容

shred可覆盖文件以隐藏内容,另外还可以删除文件。

$ shred -zvu -n 5 passwords.list

这个命令包括的几个选项有:

-z – 最后一次覆盖添加0,以隐藏覆盖 *** 作

-v – 能够显示 *** 作进度

-u – 覆盖后截断并删除文件

-n – 指定覆盖文件内容的次数(默认值是3次)

shred – 覆盖文件以隐藏内容。

你可以在shred的参考手册页找到更多的使用选项和信息:

$ man shred

2. wipe – 安全地擦除Linux下的文件

Linux的wipe命令,可安全地删除磁存储器中的文件,后续无法恢复已删除文件或目录的内容。

首先,你需要安装wipe工具才能使用它,运行下面命令:$ sudo apt-get install wipe [在Debian及其衍生版上]

$ sudo yum install wipe [在基于RedHat的系统上]

下面这个命令将擦除目录private下面的一切内容。

$ wipe -rfi private/*

相关标志的用法如下:

-r – 告诉wipe递归查询子目录

-f – 启用强行删除,并禁用确认查询

-i – 显示删除过程的进度

wipe – 安全地删除Linux下的文件

注意:wipe只能适用于磁存储器,对于固态磁盘要使用其他方法。

仔细阅读wipe的参考手册页,了解更多的使用选项和使用说明:

$ man wipe

3. 面向Linux的secure-deletetion工具包

secure-delete是一套安全文件删除工具,包含SRM(secure_deletion)工具,它是用来安全地删除文件。

首先,你要安装它,为此使用下面这个相关命令:$ sudo apt-get install secure-delete [在Debian及其衍生版上]

$ sudo yum install secure-delete [在基于RedHat的系统上]

一旦安装完毕,你可以使用srm工具,在Linux系统上安全地删除文件或目录,如下所示。

$ srm -vz private/*

使用的选项如下:

-v – 启用详细信息模式

-z – 用0而不是随机数据擦除上一次写入的内容

srm – 安全删除Linux下的文件

仔细阅读srm的参考手册页,了解更多的使用选项和信息:

$ man srm

4. sfill –安全免费的磁盘/索引节点空间擦除工具

ffill是secure-deletetion工具包的一部分,它是一种安全免费的磁盘和索引节点空间擦除工具,可以安全地删除闲置磁盘空间上的文件。sfill可检查指定分区上的闲置空间,并用来自/dev/urandom的随机数据来填充。

下面这个命令将在我的根分区上执行sfill,-v参数选项符启用详细信息模式:

$ sudo sfill -v /home/aaronkilik/tmp/

假设你创建了一个单独的分区,/home用来存储平常的系统用户主目录,那么你可以在该分区上指定一个目录,对它进行sfill *** 作:

$ sudo sfill -v /home/username

sfill有几个局限性,参考手册页中有说明,你还能找到另外的使用标志和 *** 作说明:

$ man sfill

注意:secure-deletetion工具包中的下面两个工具(sswap和sdmem)与本文并不直接有关,不过我们会介绍它们,也许将来用得着。

5. sswap – 安全交换分区擦除工具

这是一个安全分区擦除工具,sswap删除的数据驻留在交换分区上的数据。

警告:记得在使用sswap之前先卸载掉你的交换分区!不然系统可能会崩溃!

只要确定你的交换分区(并使用swapon命令,核实分页和交换设备/文件是否开启),下一步,使用swapoff命令,禁用分页和交换设备/文件。

然后,在交换分区上运行sswap命令:

$ cat /proc/swaps

$ swapon

$ sudo swapoff /dev/sda6

$ sudo sswap /dev/sda6 #这个命令需要一段时间才能完成,默认情况下执行38趟

sswap – 安全交换分区擦除工具

确保仔细阅读sswap的参考手册页,了解更多的使用选项和信息:

$ man sswap

6. sdmem – 安全内存擦除工具

sdmem是安全内存擦除工具,它旨在安全地删除驻留在内存中的数据。

它原先名叫smem,但是在Debain系统上,有另一个程序包名叫smem(报告每个进程和每个用户的内存使用情况),于是开发人员将它改名为sdmem。

$ sudo sdmem -f -v

想了解更多的使用信息,请仔细阅读sdmem的参考手册页:

$ man sdmem


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

原文地址:https://54852.com/yw/8663968.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存