linux+mv+删除文件,Linux基础文件管理命令之rm,mv,cp,touch

在linux系统下,一切皆文件,就连光盘也看作文件,要使用光盘首先要先建立一个目录,然后通过挂载来操作这个光盘,就连鼠标,键盘都是被看作文件。所以学习文件的相关操作命令是很重要的。

rm命令

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件保持不变。

注:rm是一个危险的命令,使用的时候要特别小心,尤其对于新手,否则整个系统就会毁在这个命令,比如以root身份在根目录下执行rm * rf对linux系统而言会是致命的。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

1)命令格式

rm [选项]    FILENAME

2)命令功能

删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。

3)命令参数

-f:强制删除;忽略不存在的文件,不给提示。

-i:进行交互式删除,即在删除时会提示你是否真的需要删除

默认是没有提示的,之所以有提示是因为系统默认使用了命令别名一般只有root用户有普通用户不具备这项功能,也是系统的安全措施,具体的可以通过alias命令查看(如果命令使用了命令别名可以通过'\'取消命令别名,不含引号)

-r:指示rm将参数中列出的全部目录及其子目录均递归的删除

-v:显示命令执行的过程

4)常用范例

例一:删除/tmp目录下的test的目录[root@localhost tmp]# mkdir test

[root@localhost tmp]# rm test

rm: cannot remove directory `test': Is a directory        #默认不可以删除目录

[root@localhost tmp]# ls

gconfd-root  mapping-root  test

[root@localhost tmp]# rm -r test

rm: remove directory `test'? y

[root@localhost tmp]# ls

gconfd-root  mapping-root

例二:删除/tmp目录下的mnt子目录及其子目录,并且不需要一一确认[root@localhost tmp]# tree mnt/

mnt/

|-- m

|   `-- x

`-- y

3 directories, 0 files

[root@localhost tmp]# rm -rf mnt

[root@localhost tmp]# ls

gconfd-root  mapping-root

mv命令

mv命令是move的缩写,可以用来移动文件或者将文件改名

1)命令格式:

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

2)命令功能:

视mv命令中的第二个参数类型的不同(是目标文件还是目标目录),当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除。

3)命令参数:

-b:若需要覆盖文件,则覆盖前先行备份

-f:强制复制,如果目标文件已经存在,不会询问而直接覆盖

-i:若文件已经存在,就会询问是否覆盖

-u:若目标文件已经存在,且source比较新,才会更新

-t:将所有参数指定的源文件或目录移动至指定目录

4)常用范例:

例一:将test.txt重命名为test.log[root@localhost tmp]# ls

gconfd-root  mapping-root  test.txt

[root@localhost tmp]# mv test.txt log.txt

[root@localhost tmp]# ls

gconfd-root  log.txt  mapping-root

例二:将a.txt,b.txt,c.txt文件移动至/tmp/txt目录中去[root@localhost /]# mv -t /tmp/txt/ a.txt b.txt c.txt

[root@localhost /]# ls /tmp/txt/

a.txt  b.txt  c.txt

例三:文件被覆盖钱做简单备份[root@localhost txt]# cat a.txt

1234567890

[root@localhost txt]# cat b.txt

abcdefghi

[root@localhost txt]# mv -b a.txt b.txt

mv: overwrite `b.txt'? y

[root@localhost txt]# ls -l

total 20

-rw-r--r-- 1 root root 11 Aug  4 14:57 b.txt

-rw-r--r-- 1 root root 10 Aug  4 14:57 b.txt~

-rw-r--r-- 1 root root  0 Aug  4 14:45 c.txt

[root@localhost txt]# cat b.txt

1234567890

[root@localhost txt]# cat b.txt~

abcdefghi

5)扩展:

-b 不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。

--backup该选项指定如果目标文件存在时的动作,共有四种备份策略:

1.CONTROL=none或off : 不备份。

2.CONTROL=numbered或t:数字编号的备份

3.CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:

执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。

4.CONTROL=simple或never:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

cp命令

cp命令用来复制文件或者目录,是linux系统中最常用的命令之一。

1)命令格式

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

2)命令功能

将源文件复制到目标文件,或将多个源文件复制至目标目录。

3)命令参数

-i:覆盖前询问

-r:复制目录及目录内的所有项目

-f:覆盖已经存在的文件而不提示

-a:归档复制,常用于备份

-p:源目录或文件的属性全部保留

-v:显示命令执行的过程

4)常用范例

例一:将多个文件复制到同一目录下[root@localhost txt]# cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/ -v

`/etc/passwd' -> `/tmp/passwd'

`/etc/inittab' -> `/tmp/inittab'

`/etc/rc.d/rc.sysinit' -> `/tmp/rc.sysinit

例二:将test.rb 复制到test目录,并且保留原文件的属性-rw-r--r-- 1 root root     0 Aug  4 15:33 test.rb

drwxr-xr-x 2 root root  4096 Aug  4 14:59 txt

[root@localhost tmp]# cp -p test.rb test

[root@localhost tmp]# ls -l test

total 4

-rw-r--r-- 1 root root 0 Aug  4 15:33 test.rb

touch命令

touch命令不常用,一般在使用make的时候可能会用到,用来修改文件的时间戳,或者新建一个不存在的文件。

1)命令格式

touch    [选项]    FILENAME

2)命令功能

将文件的访问时间和修改时间改为当前时间。

不存在的文件将会被创建为空文件,除非使用-c

3)命令参数

-a:只更改访问时间

-c:不创建任何文件

-m:只更改修改时间

-r:指定某文件的时间属性而非当前时间

-t:使用[[CC]YY]MMDDhhmm[.ss]格式的时间而非当前时间

4)常用范例

例一:将a.txt的时间改为当前时间,文件不存在则建之[root@localhost txt]# touch a.txt

[root@localhost txt]# ll

total 24

-rw-r--r-- 1 root root  0 Aug  4 15:50 a.txt

-rw-r--r-- 1 root root 11 Aug  4 14:57 b.txt

-rw-r--r-- 1 root root 10 Aug  4 14:57 b.txt~

-rw-r--r-- 1 root root  0 Aug  4 14:45 c.txt

例二:将c.txt的时间改为8月1号1点零1分-rw-r--r-- 1 root root  0 Aug  4 14:45 c.txt

[root@localhost txt]# touch -ct 08010101 c.txt

[root@localhost txt]# ll

total 24

-rw-r--r-- 1 root root  0 Aug  4 15:50 a.txt

-rw-r--r-- 1 root root 11 Aug  4 14:57 b.txt

-rw-r--r-- 1 root root 10 Aug  4 14:57 b.txt~

-rw-r--r-- 1 root root  0 Aug  1 01:01 c.txt

例三:将c.txt的时间改为和b.txt的一样-rw-r--r-- 1 root root 11 Aug  4 14:57 b.txt

-rw-r--r-- 1 root root 10 Aug  4 14:57 b.txt~

-rw-r--r-- 1 root root  0 Aug  1 01:01 c.txt

[root@localhost txt]# touch -r b.txt c.txt

[root@localhost txt]# ll

total 24

-rw-r--r-- 1 root root  0 Aug  4 15:50 a.txt

-rw-r--r-- 1 root root 11 Aug  4 14:57 b.txt

-rw-r--r-- 1 root root 10 Aug  4 14:57 b.txt~

-rw-r--r-- 1 root root  0 Aug  4 14:57 c.txt

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值