用于按名称删除文件夹中文件的SSH命令

时间:2015-02-26 11:27:33

标签: linux bash ssh

我有一个包含超过5000个文件的文件夹。所有文件名都是数字(例如:132455.jpg),并且要删除名称低于特定数字的所有文件(例如:删除名称超过15000的所有文件) 什么是最快捷,最简单的方法?

PS:对不起,我是新手,这个SSH业务看起来很吓人,但需要快速清理这个目录,因为文件过于堵塞

3 个答案:

答案 0 :(得分:0)

也许这个可以解决你的问题:

ssh root@192.168.1.1 'find . -type f -name "15000.jpg" -exec rm -f {} \'

这个将在您的192.168.1.1服务器上运行,您的root帐户在简单引用之间使用以下命令。

此命令将在“。”中找到名称为15000.jpg的所有文件。目录(您可以指定路径以避免在所有系统上运行此命令),并且将删除匹配项。

答案 1 :(得分:0)

您可以使用putty进行ssh连接,浏览到该文件夹​​并输入     rm {0..14999} .jpg

将删除低于15000.jpg的所有文件

答案 2 :(得分:0)

这可以很容易地用纯粹的bash来完成。

for f in *; do
#for every file in current directory
    if [[ ${f%.*} -lt $yourNumber ]]; then
    #if the current filename minus the extension is less than $yourNumber
        rm "$f"
        #remove the file
    fi
done

要通过ssh执行此操作,我们可以ssh yourUser@yourHost \"/cd dir/to/process; for f in *; do if [[ ${f%.*} -lt yourNumber ]]; then rm "$f"; fi; done\"