【问题标题】:Bash Search DeepBash 搜索深度
【发布时间】:2015-10-11 20:24:36
【问题描述】:

目前我正在使用以下命令在我的目录中查找所有文件以查找所有 JPG 文件,但是,我也想查找扩展名 .JPG 和 .GIF。我有一些文件嵌套在几个子子文件夹下......这个命令如何为我提取所有内容?非常感谢我能得到的任何帮助!

FILES=/home/pictures/s/downloaded/*.jpg
for randomvid in $FILES
do

done

【问题讨论】:

    标签: bash loops random find


    【解决方案1】:
    find path -type f -name '*.jpg' -o -name '*.gif' -print
    

    这会递归搜索path子目录下的jpg、gif文件并返回

    您可以使用循环处理它们。 正如 Etan 所指出的,while 循环比 for 更适合处理文件。

    find path -type f -type f \( -name "*.jpg" -or -name "*.gif" \) -print |
    while read FILE
    do  
      # Process the $FILE
    done
    

    【讨论】:

    • 如果我以 root 身份通过 cronjob 运行,我如何指向一个目录进行搜索?
    • 我们可以忽略扩展的大小写敏感吗?
    • 您可以将搜索开始的路径作为参数传递给在 cron 下运行的 shell 脚本。然后在脚本中,您可以传递 $1 作为查找路径,如下所示: find $1 -name '*.jpg'
    • 如果您的 find 命令版本支持 -i 选项,您可以使用它使搜索不区分大小写
    【解决方案2】:

    这是一个没有管道的 grep 示例......

    grep -rl --include=*.{jpg,gif} "*" ~/pictures/s/downloaded 
    

    【讨论】:

    • 这有点工作,但它也给了我日期时间
    • 我只想要那个文件名的完整路径
    • 啊,是的,但它也给了我带有 .jpg 的目录...我怎么能不显示目录...
    • 我不确定您为什么要获取目录...您不应该这样做。
    • 只是一个小评论,但你的 grep 标准不应该是 ".jpe?g|.gif|.png" 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2011-01-31
    相关资源
    最近更新 更多