我有一个IP摄像机,它可以拍摄快照并将这些快照嵌套到多个目录中。子目录看起来像这样。
/cam_folder
|--Date
|----Hour
|------Minute
|-------->file1
|-------->file2...etc
|------Minute
|-------->file1...etc
由于它存储文件的方式众多,因此存在很多子目录,因为它将快照保存在Date / Hour目录的Minute目录中。
无论如何,还有其他类型的文件混入其中,但是我知道如何使用find查找我需要的所有.jpg文件:
find /cam_folder/ -type f -name '*.jpg'
但是我需要做的是将所有.jpg文件重命名为随机字符。我能够从bash脚本中的单个目录中找到它:
for file in *.jpg; do
new_file="$(mktemp XXXXXXXX.jpg)"
mv -f -- "$file" "$new_file"
done
我的问题是如何将它们绑在一起?我需要使用find将它们输入bash脚本中,我猜呢?
有没有更简便的方法来随便去递归地重命名目录?
答案 0 :(得分:1)
find /cam_folder/ -type f -name '*.jpg' -exec sh -c '
for f; do
mv -f -- "$f" "${f%/*}/$(mktemp -u XXXXXXXX.jpg)"
done' _ {} +
find
Shell Command Language § The for Loop
Shell Command Language § Parameter Expansions
答案 1 :(得分:0)
我认为符合您的需求
x(val)