『壹』 linux怎么将一个目录下除了某个文件外的文件都删除
在Linux系统中,如果需要删除目录下除了某个文件外的所有文件,可以采用extglob模式。首先,使用以下命令打开extglob模式:shopt -s extglob。接着,使用rm命令加上-f选项和extglob模式中的特殊语法来实现删除操作,如:rm -fr !(file1),这里的file1就是你希望保留的文件名。
如果需要排除的文件不止一个,可以使用管道符号来分隔这些文件名,例如:rm -rf !(file1|file2),这样可以同时排除file1和file2两个文件,而这两个文件之外的其他文件都将被删除。
需要注意的是,使用rm命令时务必谨慎,因为该命令会永久删除文件,且不会进行恢复。在执行删除操作前,最好先通过ls命令查看目标目录下的文件,确保不会误删重要文件。
此外,为了避免出现意外删除,建议在执行删除命令时加上-i选项,这样在删除每个文件前都会得到确认提示,可以手动选择是否删除。
总之,利用extglob模式可以方便地在Linux系统中实现对目录下特定文件的批量删除操作,但使用时一定要注意安全,避免误删重要文件。
使用rm命令时,务必确保其正确性和安全性,避免对系统造成不可逆的影响。
『贰』 linux下使用通配符批量删除文件
一、cd命令进入这个linux文件夹目录。
二、打:
find . -type f -name *.log -mtime +x -exec rm -fv { } \;
命令作用:在当前目录下查找x天前的后缀专为log的文属件并且删除。
例:
find . -type f -name *.log -mtime +300 -exec rm -fv { } \;
查找300天前的后缀名为log的文件并且删除。
命令详细解释:
. 在当前目录下查找,如果要全盘查找的话,可以把.换成/,这样前面的cd命令就不需要了。
-type f 查找的是普通文件,而不是文件夹
-name *.log 查找后缀为log的文件
-mtime +x 查找x天以前的文件,所以需要把这个x换成你自己需要查找的天数,比如30.你要删除20090808以前的,就需要计算一下,它距离现在多少天。
-exec rm -fv { } \; 把查找的文件强制删除
如果权限不足,请以root身份运行命令。
如果是ubuntu,前面可以加sudo即可。
『叁』 Linux中快速删除文件的方法linux删除操作
Linux是一种极其受欢迎的开源操作系统,可以运行在各种平台上,其中包括桌面电脑、服务器和嵌入式设备。当您安装linux系统时,很可能您会使用它来删除文件。Linux系统中有两种快速删除文件的方法:rm和trash-cli。
一、rm命令
rm命令是最常用的Linux删除文件的方法之一。它可以用于删除文件和目录,其格式为:
rm [option] [file]
常用的参数时-r和-f,当您指定-r参数时,它可以递归到所有子目录来删除所有文件,-f参数用于强制删除文件,忽略任何提示信息。如果要删除当前目录中所有文件,则可以执行如下命令:
rm -rf *
二、trash-cli 命令
trash-cli是一个开源的linux删除文件的命令行工具,由于它支持在删除之前提示用户,如果用户不需要删除文件,可以取消此操作,因此更安全。以下是trash-cli的格式:
trash-put [option] [file]
此外,可以使用xargs和find结合trash-cli来批量删除文件,其格式为:
find ./ -name “*.txt” | xargs trash-put
这句话可以用于删除所有以txt为扩展名的文件。您也可以使用-v参数来列出执行的过程,使用-i参数来显示每一步的提示信息,使用-e参数来忽略已存在的文件,等等。
上面就是Linux中快速删除文件的几种方法。rm命令是最常用的,但也容易引起数据丢失,而trash-cli的警告功能可以减少数据丢失的可能性。我们应该根据自己的需求,充分考虑后再决定选择哪种方法。
『肆』 linux 批量删除文件
首先建立50万个文件
复制代码代码如下:
test for i in $(seq 1 500000)
for> do
for> echo test >>$i.txt
for> done
1 rm
复制代码代码如下:
test time rm -f *
zsh: sure you want to delete all the files in /home/hungerr/test [yn]? y
zsh: argument list too long: rm
rm -f * 3.63s user 0.29s system 98% cpu 3.985 total
由于文件数量过多,rm不起作用。
2 find
复制代码代码如下:
test time find ./ -type f -exec rm {} \;
find ./ -type f -exec rm {} \; 49.86s user 1032.13s system 41% cpu 43:19.17 total
大概43分钟。
3 find with delete
复制代码代码如下:
test time find ./ -type f -delete
find ./ -type f -delete 0.43s user 11.21s system 2% cpu 9:13.38 total
用时9分钟。
4 rsync
首先建立空文件夹blanktest
复制代码代码如下:
~ time rsync -a --delete blanktest/ test/
rsync -a --delete blanktest/ test/ 0.59s user 7.86s system 51% cpu 16.418 total
16s,很好很强大。
5 Python
复制代码代码如下:
import os
import time
stime=time.time()
for pathname,dirnames,filenames in os.walk('/home/username/test'):
for filename in filenames:
file=os.path.join(pathname,filename)
os.remove(file)
ftime=time.time()
print ftime-stime
复制代码代码如下:
~ python test.py
494.272291183
大概用时8分钟。
6 Perl
复制代码代码如下:
test time perl -e 'for(<*>){((stat)[9]<(unlink))}'
perl -e 'for(<*>){((stat)[9]<(unlink))}' 1.28s user 7.23s system 50% cpu 16.784 total