在Linux系统里平时需要对目录文件做一些管理操作,其中最基本的有cp,mv,rm等命令:
cp命令:copy 复制 其中包含源文件,目标文件: copy分为单源复制和多源复制,详解如下:
单源复制:cp [option]…[-T] SOURCE DEST
多源复制:cp [option]…SOURCE…DIRECTORY
cp [option]…-t DIRECTORY SOURCE…
单源复制: cp [option]…[-T] SOURCE DEST
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中
如:ls /tmp
cp /etc/fstab /tmp/yushan.txt 将etc/fstab文件复制至/tmp下
ls /tmp 再次查看tmp目录下有没有yushan.txt
cat /tmp/yushan.txt 查看yushan.txt里的内容
如果DEST存在:
如果DEST是非目录文件,则覆盖目标文件
如:cp /etc/issue /tmp/yushan.txt
因为yushan.txt是非目录文件,所以系统会提示是否覆盖/tmp/yushan.txt
按y同意覆盖 然后查看yushan.txt的内容是否发生了变化 ,如下:
cat /tmp/yushan.txt 看文件内容已经发生了变化
如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流
如: mkdir /tmp/test
cp /etc/issue /tmp/test/
ls /tmp/test/ 查看test目录下有没有文件issue
cat /tmp/test/issue
多源复制:cp [option]…SOURCE…DIRECTORY
cp [option]…-t DIRECTORY SOURCE…
如果DEST不存在,错误
如果DEST存在,
如果DEST是非目录文件:错误
如果DEST是目录文件,分别复制每个文件至目标目录中,并保持同名
常用选项:
-i:交互式复制,即复制之前提醒用户确认;
-f:强制覆盖目标文件
-r:递归复制目录
如:cp -r /var/log /tmp/ 将/var下的log目录复制至/tmp下,然后把log里的所有内容也复制过来
ls /tmp
ls /var/log ls /tmp/log 比对两个目录下的文件
cp -r /var/log /tmp/yushan.txt
系统显示报错信息,目录无法覆盖文件
-d:复制符号链接文件本身,而非其指向的源文件
如: ls -l /etc
cp /etc/system-release /tmp/
ls /tmp
cat /tmp/system.release 发现文件已经复制过来,如果不想复制其内容而只是想复制链接文件,则用-d命令
-a:-dR –preserve=all,archive,用于实现归档
–preserv=
mode:权限
ownership:属主和属组
timestamps:时间戳
contexts:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
mv命令:move
mv [OPTION]…[-T] SOURCE DEST
mv [OPTION]…SOURCE…DIRECTORY
mv [OPTION]…-t DIRECTORY SOURCE..
如:cd /tmp
ls 看/tmp目录下是否有test和yushan.txt两个文件
如: mv test yushan.txt 源文件和目标文件在同一个目录下就是重命名
mv functions x/
ls
ls x/
常用选项:
-i:交互式
-f:force
rm命令:remove 移除
rm [OPTIONS] …FILE…
常用选项:
-i:interactive
-f:force
-r:recursive
危险操作: rm -rf /*
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)
原创文章,作者:N24_yushan,如若转载,请注明出处:http://www.178linux.com/58074
评论列表(1条)
总结的不错~能注意下排版会更好~继续加油~