CentOS7:Bash 删除取反案例

删除当前目录下指定文件或文件夹之外的其他文件信息

一般来说,我们只会删除指定文件或文件夹,但有时候我们却需要删除指定文件之外的其它文件,这时,自带的命令已无法直接完成,所以要写一段脚本,新建文件 rmrev,脚本内容代码如下:

#!/bin/bash

d1='mytempdir'
mkdir ~/$d1
mv $* ~/$d1
# 一种方式是不删除文件而是移到一个作为回收站的文件夹中
# mv * /recycler
rm -rf *
mv ~/$d1/* .
rm -d ~/$d1
echo 'reverse remove finish!'

思路:通过将不被删除的文件移动到其它文件夹下的新建的文件夹中,然后再删除当前文件夹下的所有文件或文件夹,之后再把之前的文件全部移动回来,删除新建的文件夹,最后达到想要的效果。同理查看指定的文件或文件夹之外的其他文件信息也可以这样做:

#!/bin/bash

d2='mytemp'$(echo $0 | awk -F '/' '{print $NF}')
mkdir ~/$d2
mv $* ~/$d2
# -d 参数是为了查看文件夹属性而不打印子文件信息
ls -ld *
mv ~/$d2/* .
rm -d ~/$d2

写好的脚本放到用户目录的 bin 文件夹中,并赋予其执行权限,就可以当做命令来使用了。
总的来说要学会变通!

你可能感兴趣的:(CentOS7)