cp
copy files and directories 复制文件及目录
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
cp -r 源目录/* 指定目录
-s:对源文件建立符号连接,而非复制文件;
-u:-u :若 destination 比 source 旧才更新 destination
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
#cp/etc/issue /etc/issue.ori 作用一样 cp /etc/issue{,.ori}
cp/tmp/test/{dir3/file4.txt,dir2/} 分解
#cp /tmp/test/dir3/file4.txt /tmp/test/dir2/
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
刚开始用-f,还是提示是否覆盖,原因是命令别名中,cp 默认有-i选项
取消后,再-f时,不提示了
绝对路径与相对路径
1、绝对路径以根为起点
2、相对路径以当前工作目录为起点
rm
慎用,删除前一定要先备份
-r 递归
-f 强制
-rf 强制删目录
上面这样就出错了 这样会删整个tmp目录,包括其自身
应该写成/tmp/*
一般用find命令替代删除
/tmp相当于回收站,放这里,一段时间统一清理
比如要删除一个/test/c.txt的文件
可以用以下三种方法
之所以用xargs,是由于很多命令不支持|管道来传递参数,而工作中又有这个必要,所以就有了xargs命令,例如:
find /sbin -perm +700 |ls -l 这个命令是错误的
find /sbin -perm +700 |xargs ls -l 这样才是正确的
xargs
擅长将标准输入数据转换成命令行参数
-d 自定义一个定界符
-n 每行显示几个
但是rm这个命令 就只能这样用
mv
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
rm
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
ps:普通文件不能加-r(递归删除)
正确方法:使用mv命令移动到/tmp下,替代删除动作
find /tmp/ –type f –name”file3.txt” –exec mv {} /test/ \; 转义
{} 里代表着前面ifnd所配置到的内容 然后mv
转载于:https://blog.51cto.com/11755576/1973791