创建、复制、移动、删除
touch命令(创建文件)
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。
语法
touch(选项)(参数)
选项
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。功能
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
常用范例
1)创建不存在的文件
如果log2014.log不存在,则不创建文件
2)更新log.log的时间和log2012.log时间戳相同
3)设定文件的时间戳
说明:
-t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time规定为如下形式的十进制数:
[[CC]YY]MMDDhhmm[.SS]
这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的。
4)同时创建多个文件
mkdir命令(创建目录)
mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
语法
cd (选项) (参数)
选项
常用范例
1)创建一个空目录
2)递归创建多个目录
3)创建权限为777的目录
4)一个命令创建项目的目录结构
cp命令(复制)
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。
语法
cp(选项)(参数)
选项
参数
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用
-R选项;目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
常用范例
1)复制单个文件到目标目录,文件在目标文件中不存在
说明:
在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。
2)目标文件存在时,会询问是否覆盖
说明:
目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
3)复制整个目录
目标目录存在时:
目标目录不存在时:
说明:
注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面。
4)复制的 log.log 建立一个链接到 log_link.log
说明:
那个 log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的!
5)将文件file复制到目录/usr/men/tmp下,并改名为file1
6)将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:
mv命令(移动)
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:
如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
语法
mv(选项)(参数)
选项
参数
源文件:源文件列表。
目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。
常用范例
1)文件改名
2)移动文件
3)将文件log1.txt,log2.txt,log3.txt移动到目录test3中
4)将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
5)将文件file1改名为file2,即使file2存在,也是直接覆盖掉
说明:
log3.txt的内容直接覆盖了log2.txt内容,-f 这是个危险的选项,使用的时候一定要保持头脑清晰,一般情况下最好不用加上它。
6)目录的移动
说明:
如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。
7)移动当前文件夹下的所有文件到上一级目录
8)把当前目录的一个子目录里的文件移动到另一个子目录里
9)文件被覆盖前做简单备份,前面加参数-b
说明:
-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:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。
rm命令(删除)
rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
语法
rm (选项)(参数)
选项
参数
文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。
常用范例
1)删除文件file,系统会先询问是否删除。
输入rm log.log命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。
2)强行删除file,系统不再提示
3)删除任何.log文件;删除前逐一询问确认
4)将 test1子目录及子目录中所有档案删除
rmdir命令(删除空目录)
rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。
语法
rmdir(选项)(参数)
选项
参数
目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。
常用范例
1)rmdir 不能删除非空目录
2)rmdir -p 当子目录被删除后使它也成为空目录的话,则顺便一并删除
Last updated
Was this helpful?