Linux 查看并从列表中选择要删除的文件

Linux 查看并从列表中选择要删除的文件,linux,bash,Linux,Bash,我有一堆图形保存为png文件。其中大多数不是很有用,但有些很有用 我想写一个脚本,每次显示一个,然后等待我点击y或n。如果我点击n,删除它。如果没有,请转到下一个 我遇到了两个问题 首先,feh打开一个新窗口,所以我必须将tab键切换回shell,以便按y或n键。是否可以让bash监听任何按键,包括不同窗口中的按键 第二,我试图使用read来监听字符,但它说-n不是一个有效的选项。不过,同样的线路在航站楼也能正常工作 你知道怎么做吗? 谢谢你的帮助 #! /bin/sh

我有一堆图形保存为png文件。其中大多数不是很有用,但有些很有用

我想写一个脚本,每次显示一个,然后等待我点击y或n。如果我点击n,删除它。如果没有,请转到下一个

我遇到了两个问题

首先,feh打开一个新窗口,所以我必须将tab键切换回shell,以便按y或n键。是否可以让bash监听任何按键,包括不同窗口中的按键

第二,我试图使用read来监听字符,但它说-n不是一个有效的选项。不过,同样的线路在航站楼也能正常工作

你知道怎么做吗? 谢谢你的帮助

#! /bin/sh                                                                                                                                                               

FILES=./*.png
echo $FILES
for FILE in $FILES
do
    echo $FILE
    feh "$FILE" &
    CHOICE="none"
    read -p "d to delete, any other key to keep: " CHOICE -n 1 -s
    killall feh
    if [$CHOICE -eq "d"]
    then
        rm $FILE
    fi
done

这可能与您的问题无关,但您的脚本设置为使用
/bin/sh
(POSIX shell)执行,但您可能使用
/bin/bash
作为交互式终端shell<代码>读取根据您使用的shell的不同处理方式:

下面是一个
read
命令三个不同shell的输出;在我的系统中,
dash
外壳用于
/bin/sh
,但为了确保它在被称为
sh
dash
时处理相同的问题,我已经用每个名称运行了两次:

$bash
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
d要删除,任何其他要保留的键:d
bash:读取:“-n”:不是有效的标识符
$exit
$dash
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
d要删除,任何其他要保留的键:d
读取:1:-n:错误的变量名
$ 
$pdksh
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
pdksh:读取:-p:无协进程
$$sh
$read-p“d要删除,其他任何键要保留:”CHOICE-n1-s
d要删除,任何其他要保留的键:d
读取:1:-n:错误的变量名
$ 
$ 

我不想从你的编程项目中获得乐趣,但是如果你只是想完成这项任务,
qiv
图像查看器提供了一个非常方便的
d
键绑定,可以将图像移动到
.qiv trash/
目录中。运行
qiv-fmt*
并快速处理无用的图像。刚刚发现feh有相同的功能,但它是ctrl-delete。所以我想问题已经解决了,尽管我仍然对答案感兴趣