linux下删除某一目录下所有非文件夹的文件命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下删除某一目录下所有非文件夹的文件命令相关的知识,希望对你有一定的参考价值。

想删除某一目录下所有排除掉文件夹的文件,不想一个个的删除,有没有什么linux命令一步就可以达到目的的?

$ ls --file-type | grep -v "/$" | xargs rm -f

该命令删除当前目录下除了文件夹以外的所有文件。

使用 ls --file-type 会列举出当前目录下所有的文件和文件夹,且文件夹后面会带一个 /

再用 grep -v 将文件夹过滤掉,文件夹的 / 符号在结尾,所以使用正则表达式 "/$" 过滤

最后将其他所有的文件通过 rm 命令删除,此时需要将文件名通过 xargs 传递到命令行参数中。

参考技术A 删除文件命令
rm
NO1. 删除当前目录的文件
[root@rehat root]# rm test.txt
NO2. 强制删除当前目录的文件,不弹出提示
[root@rehat root]# rm -f test.txt
NO3. 强制删除整个目录,包括目录与文件全部删除,需要管理员权限
[root@rehat root]# rm -r -f test
删除文件夹命令
rmdir
NO1. 删除一个空目录
[root@rehat root]# rmdir emptydir
NO2. 删除多级空目录
[root@rehat root]# rmdir -p emptydir/d1/d11
参考技术B 进入你想删掉的文件夹下 然后 用rm -rf * 就可以了 * 代表当前目录所有文件 参考技术C rm -rf 目录名
会把目录名的文件夹删掉,建议使用:
rm -rf 目录名/*
以保留目录名的空文件夹。本回答被提问者采纳
参考技术D linux下删除文件用rm命令,删除文件夹有专门的命令rmdir;
因此如果一个文件夹下有很多文件和文件夹,而你只想删除文件可以使用以下命令:
rm *
这个命令可以删除所有的文件,而保留文件夹。

linux下如何删除目录

linux中删除文件和目录的命令: rm命令。

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
1.命令格式:
rm [选项] 文件…
2.命令功能:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
3.命令参数:
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
4.命令实例:
实例一:删除文件file,系统会先询问是否删除。
命令:
rm 文件名
输出:
[root@localhost test1]# ll
总计 4
-rw-r--r-- 1 root root 56 10-26 14:31 log.log
root@localhost test1]# rm log.log
rm:是否删除 一般文件 “log.log”? y
root@localhost test1]# ll
总计 0[root@localhost test1]#
说明:
输入rm log.log命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。
实例二:强行删除file,系统不再提示。
命令:
rm -f log1.log
输出:
[root@localhost test1]# ll
总计 4
-rw-r--r-- 1 root root 23 10-26 14:40 log1.log
[root@localhost test1]# rm -f log1.log
[root@localhost test1]# ll
总计 0[root@localhost test1]#

实例三:删除任何.log文件;删除前逐一询问确认
命令:
rm -i *.log
输出:
[root@localhost test1]# ll
总计 8
-rw-r--r-- 1 root root 11 10-26 14:45 log1.log
-rw-r--r-- 1 root root 24 10-26 14:45 log2.log
[root@localhost test1]# rm -i *.log
rm:是否删除 一般文件 “log1.log”? y
rm:是否删除 一般文件 “log2.log”? y
[root@localhost test1]# ll
总计 0[root@localhost test1]#

实例四:将 test1子目录及子目录中所有档案删除
命令:
rm -r test1
输出:
[root@localhost test]# ll
总计 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 2 root root 4096 10-26 14:51 test1
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# rm -r test1
rm:是否进入目录 “test1”? y
rm:是否删除 一般文件 “test1/log3.log”? y
rm:是否删除 目录 “test1”? y
[root@localhost test]# ll
总计 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#

实例五:rm -rf test2命令会将 test2 子目录及子目录中所有档案删除,并且不用一一确认
命令:
rm -rf test2
输出:
[root@localhost test]# rm -rf test2
[root@localhost test]# ll
总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#

实例六:删除以 -f 开头的文件
命令:
rm -- -f
输出:
[root@localhost test]# touch -- -f
[root@localhost test]# ls -- -f
-f[root@localhost test]# rm -- -f
rm:是否删除 一般空文件 “-f”? y
[root@localhost test]# ls -- -f
ls: -f: 没有那个文件或目录
[root@localhost test]#
也可以使用下面的操作步骤:
[root@localhost test]# touch ./-f
[root@localhost test]# ls ./-f
./-f[root@localhost test]# rm ./-f
rm:是否删除 一般空文件 “./-f”? y
[root@localhost test]#

实例七:自定义回收站功能
命令:
myrm() D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok";

输出:
[root@localhost test]# myrm() D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok";
[root@localhost test]# alias rm='myrm'
[root@localhost test]# touch 1.log 2.log 3.log
[root@localhost test]# ll
总计 16
-rw-r--r-- 1 root root 0 10-26 15:08 1.log
-rw-r--r-- 1 root root 0 10-26 15:08 2.log
-rw-r--r-- 1 root root 0 10-26 15:08 3.log
drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# rm [123].log
moved to /tmp/20121026150901 ok
[root@localhost test]# ll
总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# ls /tmp/20121026150901/
1.log 2.log 3.log
[root@localhost test]#
参考技术A rm命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。删除文件夹实例:rm -rf /var/log/httpd/access。更多Linux知识可参考书籍《Linux就该这么学》。 参考技术B 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
删除文件夹实例:rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的,一旦删除不可恢复.
当然,rm还有更多的其他参数和用法,man rm就可以查看了本回答被提问者和网友采纳
参考技术C rm -fr /documentname 参考技术D

1.删除目录 rmdir

rmdir 是一个用于删除空目录的命令行实用程序。只有当目录为空时才需要删除目录,而不需要检查目录是否为空。

2.删除目录 rm

rm 是一个用于删除文件和目录的命令行实用程序。与命令不同 rmdir, rm 可以删除空目录和非空目录。

3.删除目录 find

find 是一个命令行实用程序,允许您根据给定的表达式搜索文件和目录,并对每个匹配的文件或目录执行操作。最常见的情况是使用 find 命令根据模式删除目录。几个Linux命令就可以解决了,详情请看下图:

以上是关于linux下删除某一目录下所有非文件夹的文件命令的主要内容,如果未能解决你的问题,请参考以下文章

centos下怎么删除非空目录

Linux下常用命令

linux 下怎样修改一个目录及其子目录下的所有文件的 修改时间 ???

linux下如何删除目录

Linux常用命令

Linux删除文件的命令?