高吞吐量查看和选择照片

时间:2013-05-05 01:50:29

标签: linux bash

根据我收藏的成千上万张个人照片,我想选择一些特别的照片进行打印并显示为拼贴画。所有的照片都在一个硬盘上,但散落在/ home / $ USER。我知道如何使用如下命令查找所有jpg照片:find / -iname "*.jpg" -print。但那只列出了文件名。我可以运行类似的命令来查看文件,但这只是挑战的一半。

如何查看每张照片,还有一个对话框,说明是否将照片复制到要打印的目录中? (例如,使用fdupes -r -d /home/$USER我可以看到关于要删除哪个文件的对话框。

(有些背景,我使用的是ubuntu 12.04 x64,我对终端很满意。)

3 个答案:

答案 0 :(得分:3)

# assuming you have $pic_list as an array of all images
# i.e. somethiing like pic_list=`find / -iname "*.jpg"`
for pic in $pic_list
do
    display $pic &  -OR- eog $pic &
    echo "Press 'y' to copy $pic to /home/$USER/<dest_folder>"
    read option
    if [ $option = "y" -o $option = "Y" ]
    then
         cp -f $pic /home/$USER/<dest_folder>
    else
          echo "will not copy $pic"
    fi
done

如果这不是你想要的,请告诉我。

答案 1 :(得分:2)

1。为单个目录中的所有图片制作符号链接

mkdir all-pics
cd all-pics
find ~/Pictures/ -iname '*.jpg' | \
     awk '{name=$0; gsub(/[/]/,"_", name);\
          system("ln -s \"" $0 "\" \"" name "\"")}'

注意: awk脚本为每个找到的图像生成并执行命令ln -s "/path/to the/original image.jpg" "_path_to the_original image.jpg"

2. 使用geeqie查看图像。

3。使用Ctrl+C快捷方式将当前图像复制到单独的 to_be_printed/ 文件夹中。 geeqie的复制对话框会记住上次选择的文件夹,因此您只需按Ctrl+CEnter即可复制图片。

答案 2 :(得分:1)

有很多方法可以解决这个问题。我个人总是发现例如对于像这样的问题,这是一个很好的工具。您可以轻松地将其配置为读取qiv-command配置,您可以在其中准确编写您希望在特定按键上执行的操作。我将它用于执行类似的任务,只需将手指放在d(删除),空格(下一个)上。

e.g。 https://bitbucket.org/ciberandy/qiv/src/3b3fb21db52c076cd05792f648df8ae659d1af92/qiv-command.example