全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 590|回复: 5

[Windows VPS] Linux递归进入二级目录改文件名为目录名

[复制链接]
发表于 2020-10-8 20:55:20 | 显示全部楼层 |阅读模式
本帖最后由 nako 于 2020-10-8 20:55 编辑

自己瞎研究了挺久。还是没能搞定。来请教各位,感谢!
最终目的是方便emby刮削,改文件名为目录名+S1E1类似格式。
目前卡在怎么获取文件的目录名和怎么递归进入对应目录。

这是我以前用的,但是之前目录名是fclone获得的,所以还差些代码。

  1. count=1;
  2. for movie in `find . -maxdepth 1 -iname '*.mkv' -o -iname '*.mp4' -o -iname '*.avi' -type f `
  3. do
  4.   new="$cdname".S01.E$(printf "%02d" $count).${movie##*.}
  5.   mv ""$movie"" "$new"
  6.   let count++
  7. done
复制代码


这两个是找到来参考的,但是还是不会改。。。求助,谢谢~新手。。

  1. #!/bin/bash

  2. function changeName(){
  3.     #new=`echo $1|sed 's/^/abc/g'`
  4.     new=`echo $1|sed -r 's/abc(.*$)/\1/g'`
  5.     echo changeName old: $1 new: $new
  6.     if [ $1 != $new ];then
  7.         mv $1 $new
  8.     fi
  9. }

  10. function travFolder(){
  11.     #echo "travFolder start"
  12.     flist=`ls $1`
  13.     cd $1
  14.     for f in $flist
  15.     do
  16.         #echo traverse do $f
  17.         local old=$f
  18.         if test -d $f
  19.         then
  20.             #echo "traverse dir:${f}"
  21.             travFolder $f
  22.             #echo "traverse rename dir:${f}"
  23.             changeName $old #rename folder
  24.         else
  25.             #echo "traverse file:$f"
  26.             changeName $f
  27.         fi
  28.     done
  29.     cd ../
  30. }

  31. param=$1
  32. if [ -z "$1" ]
  33.     then
  34.     param="./"
  35.     echo "empty string: $param"
  36. else
  37.     param=$1
  38. fi
  39. travFolder $param
复制代码


  1. #!/bin/bash

  2. function travFolder(){
  3.     #echo "travFolder start"
  4.     flist=`ls $1`
  5.     cd $1
  6.     for f in *.key; do mv "$f" "server.key"; done
  7.     for f in *.crt; do mv "$f" "ssl.chain.crt"; done
  8.     for f in $flist
  9.     do
  10.         #echo traverse do $f
  11.         if test -d $f
  12.         then
  13.             #echo "traverse dir:${f}"
  14.             travFolder $f
  15.         fi
  16.     done
  17.     cd ../
  18. }

  19. param=$1
  20. if [ -z "$1" ]
  21.     then
  22.     param="./"
  23.     echo "empty string: $param"
  24. else
  25.     param=$1
  26. fi
  27. travFolder $param
复制代码


发表于 2020-10-8 20:56:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2020-10-9 00:17:17 来自手机 | 显示全部楼层
技术不到家,看不懂
发表于 2020-10-9 00:22:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2020-10-9 09:36:09 | 显示全部楼层
h20 发表于 2020-10-9 00:22
for movie in `xxx`

你要这样子写你就要有不需要调试的觉悟

谢谢,用rename也可以,只要能顺序进入二级目录里,剩下就简单了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-3-29 23:40 , Processed in 0.059913 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表