删除当前目录下非文件夹文件命令

删除当前目录下非文件夹文件命令
ls --file-type | grep -v "/$" | xargs rm -f
说明:

1、ls --file-type ==> 列出当前目录下所有的文件和文件夹

1
2
user@user-pc:~/文档/程序设计/C语言$ ls --file-type 
判断/ 删除非文件夹命令 数据类型/ 数组/ 循环/ 指针/ 综合练习/ c_lan/

2、| grep -v "/$" ==> 管道命令,过滤掉文件夹

1
2
user@user-pc:~/文档/程序设计/C语言$ ls --file-type | grep -v "/$"
删除非文件夹命令

3、xargs ==> eXtended ARGumentS,

用于给其他命令传递参数的一个过滤器,通过xargs传递给后面命令rm参数,删除符合前面管道符合条件的文件

1
2
3
user@user-pc:~/文档/程序设计/C语言$ ls --file-type | grep -v "/$" | xargs rm -f
user@user-pc:~/文档/程序设计/C语言$ ls --file-type
判断/ 数据类型/ 数组/ 循环/ 指针/ 综合练习/ c_lan/

一些用法举例:

1、创建t1t2t3三个文件夹

1
2
3
4
5
6
7
8
9
10
11
12
user@user-pc:~/文档/test$ ls -al
总用量 8
drwxr-xr-x 2 user user 4096 11月 24 17:47 .
drwxr-xr-x 11 user user 4096 11月 18 13:18 ..
user@user-pc:~/文档/test$ echo 't1 t2 t3' | xargs mkdir
user@user-pc:~/文档/test$ ls -al
总用量 20
drwxr-xr-x 5 user user 4096 11月 24 17:50 .
drwxr-xr-x 11 user user 4096 11月 18 13:18 ..
drwxr-xr-x 2 user user 4096 11月 24 17:50 t1
drwxr-xr-x 2 user user 4096 11月 24 17:50 t2
drwxr-xr-x 2 user user 4096 11月 24 17:50 t3

2、创建文本test.txt分行输入one two three,然后读取根据test.txt内容并根据内容创建one two three三个文件夹
1
2
3
4
5
6
7
8
9
user@user-pc:~/文档/test$ touch test.txt && echo -e 'one\ntwo\nthree' > test.txt
user@user-pc:~/文档/test$ cat test.txt | xargs -I file sh -c 'echo file; mkdir file'
# 以上命令合并为:
# touch test.txt && echo -e 'one\ntwo\nthree' > test.txt && cat test.txt | xargs -I file sh -c 'echo file; mkdir file'
one
two
three
user@user-pc:~/文档/test$ ls
one test.txt three two

-I ==> 指定每一项命令行参数的替代字符串
-I file ==> file是命令行参数的替代字符
后面命令行中file将被替换前面传递过来的onetwothree替换
3、删除*.txt文件
1
2
3
4
user@user-pc:~/文档/test$ ls --file-type | grep "txt" | xargs rm
# ls --file-type | grep -v "/$" | xargs rm // 针对例2的文件夹
user@user-pc:~/文档/test$ ls
one three two

xargs详细介绍可查询:
xargs命令_Linux xargs命令:一个给其他命令传递参数的过滤器