linux 删除-rm、复制-cp、移动重命名-mv

rm

默认是不提示直接删除,有些发行版使用了 alias,所以删除时自动带上了 -i,会提示。

#默认直接删除
-r/R     递归删除目录及文件
-i       交互提示
-f       不提示,忽略不存在的文件
-d       删除空目录
#删除文件
rm aaa bbb ccc

#删除dir空目录
rm -d dir

#删除dir目录以及里面的所有文件(危险)
rm -rf dir
rm -rf dir/

#只删除dir目录里面的可见文件(危险)
rm -rf dir/*

#删除dir目录里面的可见文件和隐藏文件(删除全部)(危险)
rm -rf dir/* dir/.*

如果要删除文件名连字符(-)开头的文件,需要带上 -- ,-- 可以将下面紧跟着的字符当做字符串而不是参数。

#创建名为 -d 的文件
touch -- -d
#删除名为 -d 的文件
rm -- -d


cp

cp 命令也是默认覆盖

-r/R     递归
-l       拷贝硬链接
-s       软链接(不支持文件夹目录)
-n       不覆盖(使前面的-i失效)
-i,--interactive      交互模式(使前面的-n失效)
-a,--archive          原样复制,保留全部(包括mtime,atime,文件的所有者,权限等)

-L,--dereference      跟随符号链接(默认)
-P,--no-dereference   不跟随符号链接,也就是只拷贝符号链接,不拷贝符号链接指向的实际文件
-v      #显示详细信息
-u,--update           当源文件比较新时复制
-b                    同名文件会以~结尾备份

--remove-destination  复制前先删除
-f                    如果目标文件不能打开,那么先删除再复制(-n参数会使-f失效)
#复制并覆盖当前bbb文件为/tmp/aaa文件
cp bbb /tmp/aaa

#复制并覆盖当前所有可见文件和目录到/tmp/aaa目录下
cp -r * /tmp/aaa

#复制并覆盖当前所有文件和目录到/tmp/aaa目录下(包括隐藏文件)
cp -r . /tmp/aaa

#复制不覆盖当前所有文件和目录到/tmp/aaa目录下(包括隐藏文件)
cp -rn . /tmp/aaa

#原样复制并覆盖当前所有可见文件和目录到/tmp/aaa目录下
cp -ar * /tmp/aaa

#生成软连接bbb指向aaa
cp -s aaa bbb

centos7 默认设置了 alias,每次复制时都会提示要不要覆盖,但是在很多场景下我们都希望直接覆盖而不是提示 则可以临时取消命令别名

unalias cp          #临时删除命令别名
cp -r * /tmp/aaa/   #复制当前所有到/tmp/aaa/下并覆盖
alias cp='cp -i'    #重新生成命令别名


mv

默认覆盖

-n    不覆盖
-i    交互
-f    不交互直接覆盖
-u    只移动新的文件
-v    显示详细信息
#移动覆盖3个文件到/tmp目录
mv a.txt b.txt c.txt /tmp

#重命名a.txt为b.txt
mv a.txt b.txt


上一篇: linux 包管理 rpm、yum
下一篇: linux链接命令 ln
作者邮箱: 203328517@qq.com