当前位置: 技术问答>linux和unix
linux系统下如何批量删除废文件。
来源: 互联网 发布时间:2016-07-29
本文导语: 由于网站建设初期,代码编写错误。删除信息时,只删除了数据库记录,没有把服务器上相关的图片删除。导致服务器空间爆满。现在想做个像windows系统下的批处理一样的操作 不知道如何做。 废文件的目录列表我...
由于网站建设初期,代码编写错误。删除信息时,只删除了数据库记录,没有把服务器上相关的图片删除。导致服务器空间爆满。现在想做个像windows系统下的批处理一样的操作 不知道如何做。
废文件的目录列表我都有。差不多5W多张图片。文件目录是: /年/月/日/文件名
每日将近300张废图片。
不知道,这个linux下的批处理如何写。请各位指点。
废文件的列表我都查出来了。
废文件的目录列表我都有。差不多5W多张图片。文件目录是: /年/月/日/文件名
每日将近300张废图片。
不知道,这个linux下的批处理如何写。请各位指点。
废文件的列表我都查出来了。
|
如果有列表,比如这样,一行一个文件名:
/path/1.jpg
/path/2.jpg
就可以直接
cat list | while read NAME; do rm "$NAME"; done
/path/1.jpg
/path/2.jpg
就可以直接
cat list | while read NAME; do rm "$NAME"; done
|
如果是这样,只能按照1楼的办法了,安全起见,作了小修改:
cat list | while read NAME; do [ -f "$NAME" ] && rm "$NAME"; done
|
要是全.jpg全删好做,要是某个目录有规律的文件名就类似2楼做
要是分散的文件名,就按1楼的做
要是分散的文件名,就按1楼的做
|
cat 文件列表文件 | xargs rm -f
|
做这个的时候我总是先 echo 一下
|
#! /bin/bash
find /root/work -name '*.jpg' | while read -r file
do
echo ": file is $file"
rm -f $file
done
|
按你的需求,1楼的是最好的了,你要把那些已经不存在于数据库的图片路径导出到一个文本文件上