我有一千个左右具有随机名称的文件夹。每个文件夹至少有一个扩展名为 avi、mkv、srt 或 mp4 的文件。
我打算用其中包含的第一个文件名(不带扩展名)替换随机生成的文件夹名称。顺便说一下文件名使用包含() - 和其他奇怪的字符。在我看来,脚本应该:
- 进入文件夹
- 获取不带扩展名的名字
- 走出文件夹
- 使用新名称重命名文件夹
- 递归遍历文件夹,因为它可能包含其他子文件夹
不过,第 5 步可能会被覆盖。
由于我是 bash 编程的书呆子,因此我很感激。任何人都可以帮忙吗?
我有一千个左右具有随机名称的文件夹。每个文件夹至少有一个扩展名为 avi、mkv、srt 或 mp4 的文件。
我打算用其中包含的第一个文件名(不带扩展名)替换随机生成的文件夹名称。顺便说一下文件名使用包含() - 和其他奇怪的字符。在我看来,脚本应该:
不过,第 5 步可能会被覆盖。
由于我是 bash 编程的书呆子,因此我很感激。任何人都可以帮忙吗?
给定
然后
导致
脚本 在您的文本编辑器中复制/粘贴脚本用您的目录名称
替换变量,该目录名称包含所有带有文件的目录 在 没有第一次尝试的情况下尝试看看会发生什么。 编辑后,您可以从文本编辑器中复制它并将其粘贴到终端窗口中。
~/test/testfolders3
sourcedir
mv $oldname $newname
抱歉,如果它没有完全优化。我不是程序员。这只是我发现编写它的不同答案的汇编。花了很多时间,因为我不经常这样做。
它现在不检查目录是否存在。因此,通过第一个移动文件的名称重命名一次,它只会抛出如下消息:
第一个移动的文件并不意味着按字母顺序排列的第一个。
下面是
find $sourcedir -type f
命令执行的结果:以前的文件夹名称:
Steelworker 提出的解决方案(见上文)完美、快速、流畅。一个非常干净和简单的代码。你们真是不可思议。感谢您的时间和奉献精神。此致。