小编Les*_*rer的帖子

为什么我在现有文件的查找结果中得到“没有这样的文件”?

这是一个小问题,但有点烦人。我看了又看,但我不太明白为什么会发生这种情况或如何阻止它。我有数千个视频文件,出于多种原因,我正在慢慢地将它们从 MPEG II 格式转换为 MP4 容器中的 h.264。每个.mpg文件都有一个与之关联的.txt文件和.jpg文件,这些文件需要从“xxxxxxxxxxxxxxx.mpg.txt和xxxxxxxxxxxxxxx.mpg.jpg更改为xxxxxxxxxxxxxx.mp4.txt和xxxxxxxxxxxxxx.mp4.jpg”分别,然后需要删除旧的 .mpg 文件。我使用以下名为 mpgscan.sh 的脚本来执行此操作:

#! /bin/bash

suffix=".mpg"
mpegname="$@"
filename=${mpegname%"$suffix"}
mp4name="$filename"".mp4"
if [ -s "$mp4name" ]
then
    if lsof "$mp4name" > /dev/null || lsof "$mpegname" > /dev/null
    then
        echo "$filename in use"
    else
        if [[ -f "$mpegname"".txt" ]]
        then
            rename -f 's/\.mpg.txt$/.mp4.txt/' "$mpegname"".txt"
        fi
        if [[ -f "$mpegname"".jpg" ]] 
        then
            rename -f 's/\.mpg.jpg$/.mp4.jpg/' "$mpegname"".jpg"
        fi
        echo "$filename removed"
        rm "$mpegname"
    fi
fi
Run Code Online (Sandbox Code Playgroud)

文件的转换是在后台进行的,因此每隔一段时间我就会通过输入以下命令来批量更新关联的文件:

find /RAID/Recordings -name "*.mpg" -exec mpegscan.sh {} \;
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但没有得到像这样的预期输出:

/RAID/Recordings/Movies/K/K-9 (Recorded …
Run Code Online (Sandbox Code Playgroud)

bash find

8
推荐指数
1
解决办法
1222
查看次数

标签 统计

bash ×1

find ×1