首页 > 解决方案 > Linux:将文件夹中的文件重命名为序号

问题描述

我想将文件 1、文件 2 ... 文件 100 更改为 001、002、... 100,但它会更改为完全不同的数字。例如file1更改为051。
这是我的代码

string_leng=`(ls -l | grep ^- | wc -l) | wc -L`
echo $string_leng
find .  | grep 'file' | nl -nrz -w$string_leng -v1 | while read n f; do mv "$f" "$n"; done

标签: linuxshell

解决方案


您的问题中缺少一些细节,但这里有多种想法可以帮助您:

  • 避免grep命令输出。有更好的方法。例如计算目录中的文件:find directory -maxdepth 1 -type f | wc -l
  • find不对输出进行排序,那么您需要使用排序:(find . | sort -n带有 -n数字排序选项)
  • find . | grep 'file'应该给你文件的名称?更好的使用find -type f

推荐阅读