Linux-批量重命名带空格文件

发布于 10-22 16:10 字数 77 浏览 1357 评论 3

一目录下有多个带有空格的文件和目录,如"aa bb","bb cc dd",求一条语句将所有目录改名,文件不需要改,要求将空格转换为"_"。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜柠檬2017-09-24 15:09:45

看看问题:@在linux中如何用rename修改文件名去除某些特定的字符?

for dir in ./*/; 
do
   case "$dir" in *" "* )
      mv "$dir" "${dir// /_}"
   esac
done
晚风撩人2017-01-15 18:09:05

提供一个凑合能用的方法
如果是一个目录下的改名:

type="|";
for f in $(find ./ -type d |grep " "|sed -e 's/ /${type}/g');
do
mv "$(echo $f| sed -e 's/${type}/ /g')" "$(echo $f| sed -e 's/${type}/_/g')";
done

如果是多层目录改名的话就要写递归了。

泛泛之交2016-12-03 22:00:59

研究了一下,这样应该是可以的

ls -d */ | grep " " | sed 's//$//' | sed -e 's/^.*$/"&"/ p; s/ /_/g' | xargs -n 2 mv

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文