Ubuntu 重命名文件夹和子目录中不匹配 sha1sum 的每个文件的脚本
Ubuntu script to rename every file in folders and sub directories NOT matching sha1sum
在 Ubuntu 我有 运行 这个命令。
sha1sum /home/abcd/random/1/1.mp4
所以我有以下目录
/home/abcd/
此文件夹内有子文件夹
/home/abcd/1
/home/abcd/2
etc
etc
这些子文件夹中充满了视频文件 .mp4
扩展名
他们有多个文件,文件哈希为 3c72363260a32992c3ab2e3a5e9b8cf082e02eac
sha1sum
我想 将所有不匹配此文件的文件重命名为
vid_1.mp4
vid_2.mp4
etc
etc
我怎样才能做到这一点?
伪代码
- 查找 mp4
- sha1对它们求和(输出
<sha1sum> <filename>
)
- 传行不
3c72363260a32992c3ab2e3a5e9b8cf082e02eac
- 将行从
<sha1sum> <filename>
更改为 mv "<filename>" "vid_<filename"
- 执行行
代码
cd /home/abcd
find . -name "*.mp4" -print0 |
xargs -r -0 sha1sum |
awk '!="3c72363260a32992c3ab2e3a5e9b8cf082e02eac"' |
sed 's/^[^\s]\+\s\+\(.*\)/mv "" "vid_"/' |
sh
您可以尝试使用嵌套 if
循环 for
循环
for f in /home/abcd/*; do
i=$((i+1));
sum=$(sha1sum "$f" | awk '{print }');
if [[ "$sum" != 3c72363260a32992c3ab2e3a5e9b8cf082e02eac ]]; then
mv "$f" "vid_$i.mp4";
fi;
done
在 Ubuntu 我有 运行 这个命令。
sha1sum /home/abcd/random/1/1.mp4
所以我有以下目录
/home/abcd/
此文件夹内有子文件夹
/home/abcd/1
/home/abcd/2
etc
etc
这些子文件夹中充满了视频文件 .mp4
扩展名
他们有多个文件,文件哈希为 3c72363260a32992c3ab2e3a5e9b8cf082e02eac
sha1sum
我想 将所有不匹配此文件的文件重命名为
vid_1.mp4
vid_2.mp4
etc
etc
我怎样才能做到这一点?
伪代码
- 查找 mp4
- sha1对它们求和(输出
<sha1sum> <filename>
) - 传行不
3c72363260a32992c3ab2e3a5e9b8cf082e02eac
- 将行从
<sha1sum> <filename>
更改为mv "<filename>" "vid_<filename"
- 执行行
代码
cd /home/abcd
find . -name "*.mp4" -print0 |
xargs -r -0 sha1sum |
awk '!="3c72363260a32992c3ab2e3a5e9b8cf082e02eac"' |
sed 's/^[^\s]\+\s\+\(.*\)/mv "" "vid_"/' |
sh
您可以尝试使用嵌套 if
循环 for
循环
for f in /home/abcd/*; do
i=$((i+1));
sum=$(sha1sum "$f" | awk '{print }');
if [[ "$sum" != 3c72363260a32992c3ab2e3a5e9b8cf082e02eac ]]; then
mv "$f" "vid_$i.mp4";
fi;
done