删除当前目录下非文件夹文件命令
删除当前目录下非文件夹文件命令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命令:一个给其他命令传递参数的过滤器