删除当前目录下非文件夹文件命令
删除当前目录下非文件夹文件命令ls --file-type | grep -v "/$" | xargs rm -f
说明:
1、ls --file-type ==> 列出当前目录下所有的文件和文件夹
| 1 | user@user-pc:~/文档/程序设计/C语言$ ls --file-type | 
2、| grep -v "/$" ==> 管道命令,过滤掉文件夹
| 1 | user@user-pc:~/文档/程序设计/C语言$ ls --file-type | grep -v "/$" | 
3、xargs ==> eXtended ARGumentS,
用于给其他命令传递参数的一个过滤器,通过xargs传递给后面命令rm参数,删除符合前面管道符合条件的文件1
2
3user@user-pc:~/文档/程序设计/C语言$ ls --file-type | grep -v "/$" | xargs rm -f
user@user-pc:~/文档/程序设计/C语言$ ls --file-type
判断/  数据类型/  数组/  循环/  指针/  综合练习/  c_lan/
一些用法举例:
1、创建t1、t2、t3三个文件夹1
2
3
4
5
6
7
8
9
10
11
12user@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
9user@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将被替换前面传递过来的one、two、three替换
3、删除*.txt文件1
2
3
4user@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命令:一个给其他命令传递参数的过滤器