bash 提示符中的此命令可正确对目标文件夹中的文件进行排序。排序按降序在第三个字段进行,如下所示:
$ find -printf '%f\n' | sort -r -k3
bfilename Desc 1068%.html
afilename Desc 298%.html
我想在浏览器中以链接形式按排序顺序显示文件名。我的想法是创建并在相应的文件名前面添加一个唯一的四位数字索引号,如下所示:
0001 filename Desc 1068%.html
0002 filename Desc 298%.html
这个问题使用排序的输出来循环重命名文件,但我不明白如何修改我的任务的代码:
https://unix.stackexchange.com/questions/564672/rename-files-based-on-their-ranked-number
我能否将 sort 命令的输出通过管道传输到另一个进程,该进程要么通过添加索引来重命名文件,要么创建一个包含指向原始文件的排序链接的新文件夹?我想尝试这两种选择。我想使用 bash,但 python 脚本也是一个选择。
编辑
$ n=1; find -printf '%f\n' | sort -r -k3 | while read f; do printf "%04d" $n; echo " $f"; let n+=1; done
0001 Desc 1068%.html
0002 Desc 298%.html
0018 Desc 17%.html
0019 .
上述命令可以打印到标准输出,但包含一个不需要的额外点项 0019。Tree 在目录中提供了 18 个文件。
$ find -printf '%f\n' | sort -r -k3 | nl -n rz
000001 Desc 1068%.html
000002 Desc 298%.html
000018 Desc 17%.html
000019 .
根据注释显示输出。我想删除前两个前导零,而不是生成带点的最后一行。输出转到标准输出。我仍然不知道如何重命名当前目录中的文件和/或在新目录中生成软链接?