vas*_*thi 75 unix linux rename
重命名文件夹中所有文件的前缀为"Unix_",即假设一个文件夹有两个文件a.txt和b.pdf,那么它们都应该从一个命令重命名为Unix_a.txt和Unix_b.pdf
mik*_*iku 94
如果您的文件名不包含空格,并且您没有任何子目录,则可以使用简单的for
循环:
$ for FILENAME in *; do mv $FILENAME Unix_$FILENAME; done
Run Code Online (Sandbox Code Playgroud)
否则使用方便的rename
命令(这是一个perl脚本) - 虽然它可能在每个Unix上都没有开箱即用(例如OS X没有附带rename
).
debian-administration.org简短概述:
如果您的文件名包含空格,则更容易使用find
,在Linux上,以下内容应该有效:
$ find . -type f -name '*' -printf "echo mv '%h/%f' '%h/Unix_%f\n'" | sh
Run Code Online (Sandbox Code Playgroud)
-printf
不幸的是,在BSD系统上,没有选择.但是GNU findutils应该可以安装(例如在Mac OS X上brew install findutils
).
$ gfind . -type f -name '*' -printf "mv \"%h/%f\" \"%h/Unix_%f\"\n" | sh
Run Code Online (Sandbox Code Playgroud)
pav*_*ium 70
尝试使用文件的文件夹中的rename
命令:
rename 's/^/Unix_/' *
Run Code Online (Sandbox Code Playgroud)
重命名的参数(sed s命令)表示用Unix_替换正则表达式^.插入符号(^)是一个特殊字符,表示该行的开头.
Zhe*_*sin 26
我认为这正是你在寻找的东西:
ls | xargs -I {} mv {} Unix_{}
Run Code Online (Sandbox Code Playgroud)
是的,它简单,优雅,功能强大,而且还有同样的线索.您可以在页面上从我这里获得更详细的介绍:重命名文件和目录(添加前缀)
Tej*_*s C 14
我最近遇到了同样的情况,发现了一个更简单的内置解决方案.我在这里分享它,以便它可以帮助寻找解决方案的其他人.
借助OS X Yosemite,Apple已将批量重命名功能直接集成到Finder中.详情请见此处.我也复制了以下步骤,
重命名多个项目
选择项目,然后按住Control键并单击其中一个.
在快捷菜单中,选择"重命名项目".
在"重命名文件夹项目"下面的弹出菜单中,选择替换名称中的文本,向名称添加文本或更改名称格式.
替换文本:在"查找"字段中输入要删除的文本,然后在"替换为"字段中输入要添加的文本.
添加文本:在字段中输入要添加的文本,然后选择在当前名称之前或之后添加文本.
格式:选择文件的名称格式,然后选择在名称之前或之后放置索引,计数器或日期.在"自定义格式"字段中输入名称,然后输入要开始的数字.
单击"重命名".
如果您的文件中有一个共同的模式,那么您可以使用替换文本,否则添加文本也可以完成这项工作.
小智 6
您可以使用-i
代替-I {}
ls | xargs -i mv {} unix_{}
Run Code Online (Sandbox Code Playgroud)
这也完美地工作。
ls
-列出目录中的所有文件xargs
-由于该-i
选项,逐行接受所有文件{}
是所有文件的占位符,如果xargs
获取两个以上的参数作为输入,则为必需使用awk:
ls -lrt | grep '^-' | awk '{print "mv "$9" unix_"$9""}' | sh
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
148194 次 |
最近记录: |