[每日一氵] linux批量删除目录下的文件夹而不删除文件

给个例子吧:

思路大概是找到所有的目录,然后用管线传给删除的命令

查看当前目录下的文件和文件夹:

xxx@xxx:~/xxxx# ls
lung_001         lung_015         lung_027         lung_038         lung_048
lung_001.nii.gz  lung_015.nii.gz  lung_027.nii.gz  lung_038.nii.gz  lung_048.nii.gz  
1. find

首先我们要先把所有的文件夹筛选出来,于是我们可以借助find指令:

find . -type d

查找.(当前目录) 种类为 d(目录) 的所有文件(夹)

.
./lung_001         
./lung_015         
./lung_027         
./lung_038         
./lung_048

当时他现在把当前目录.(当前目录) 也包括起来了

2. sed

接下来只要把. 过滤掉就行了,这里我们借用 sed 指令

sed -n '2,$p'
-n 仅输出符号条件的行
p 打印内容
2, $ 第2行到最后一行

借助管线|,我们来过滤掉第一行.

find . -type d | sed -n '2,$p'

好的第一行已经过滤掉了

./lung_001         
./lung_015         
./lung_027         
./lung_038         
./lung_048
3. rm -rf

这个是删除文件 rm -rf

4. xargs

接下来用 xargs 命令,用来组合多个命令

find . -type d | sed -n '2,$p' | xargs rm -rf

这样就可以了,删除当前目录下的所有文件夹,但不删除文件

参考自:

https://zhidao.baidu.com/question/1604227242476105907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值