我想重命名我的主目录中的所有文件(例如abc),格式为(abc_bkp)而不使用任何循环,它应该是unix中的单行命令(bash脚本)。
答案 0 :(得分:0)
如果您不想使用循环,那么我相信最好的方法可能是find
命令,首先尝试使用以下命令作为DRY运行,一旦您满意结果,那么您可以删除{{1}从中得到真实的镜头。
echo
find -type f -or -type d | xargs -I % echo mv % %_bkp
:来自-I
页面:
-I replace-str 将初始参数中出现的replace-str替换为从标准输入读取的名称。此外,不带引号的空白不会 终止 输入项目;相反,分隔符是换行符。意味着-x和-L 1。
答案 1 :(得分:0)
如果目录中只包含文件,则应执行此操作:
ls | xargs -I {} mv {} {}_bkp
如果它包含您不想重命名的子目录,链接和其他内容,则必须过滤ls
的输出。这是一种粗暴的方式;也许有人可以提出一个更优雅的方法:
ls -l | grep ^- | cut -d' ' -f 13 | xargs -I {} mv {} {}_bkp