linux split 前缀下相同前缀怎么改名

linux 给文件改名的命令_百度知道
linux 给文件改名的命令
linux 将当前目录中的readme.txt改名为readme.doc的命令
我有更好的答案
linux 给文件改名的命令是mv命令mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。格式mv [options] 源文件或目录 目标文件或目录。主要参数[options]-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。选择参数当选择参数类型是文件时,mv命令完成文件重命名,它将所给的源文件或目录重命名为给定的目标文件名。实例:将文件test.txt重命名为wbk.txt:$ mv test.txt wbk.txt
采纳率:65%
对,就是这个意思,跟楼上的一样# mv readme.txt readme.doc这样的意思就是把readme.txt这个文件移动到当前目录下,并重命名为readme.doc两个文件名这里都是可以加目录的
本回答被提问者采纳
doc如果提示没有权限mv readme.txt readme:sudo mv readme.txt readme,则加上sudo
mv readme.txt readme.doc
其他1条回答
为您推荐:
其他类似问题
linux的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Linux 下修改或者重命名用户名称或者UID/GID - 简书
Linux 下修改或者重命名用户名称或者UID/GID
在Linux操作系统下怎么样用命令行去修改用户的名称(也就是重命名),或者UID/GID
切记不要手动用vi之类的文本编辑器去修改 /etc/passwd 文件
修改用户名称
usermod -l login-name old-name
修改用户的名称 old-name 改成 login-name,别的都没有改变。其实我们也应该考虑是否把用户的HOME目录也改成新的用户。
另外这里有个问题需要注意
如果出现如下报错
root@pts/0 $ usermod -l newjames james
usermod: user James is currently used by process 12345
说明有用james用户运行的程序,需要把相关的程序停掉之后再执行上面的命令
## add user 'james' for test
root@pts/0 $ useradd james
## check original id
root@pts/0 $ id james
uid=1007(james) gid=1008(james) 组=1008(james)
## check HOME directory
root@pts/0 $ ls -ld /home/james/
drwx------ 2 james james 4096 12月 23 11:46 /home/james/
## try to change or rename and verify
root@pts/0 $ usermod -l newjames james
root@pts/0 $ id james
id: james: no such user
root@pts/0 $ id newjames
uid=1007(newjames) gid=1008(james) 组=1008(james)
## check HOME folder
root@pts/0 $ ls -ld /home/james/
drwx------ 2 newjames james 4096 12月 23 11:46 /home/james/
root@pts/0 $ ls -ld /home/newjames
ls: 无法访问/home/newjames: 没有那个文件或目录
Dev-web-solr [~]
root@pts/0 $
从上面可以看出,变化只仅仅是username,UID/GUID/HOME目录都没有改变
修改UID/GID相对很简单,结合上面的例子。继续如下:
usermod -u NEW-UID username
## original UID is 1007
root@pts/0 $ id newjames
uid=1007(newjames) gid=1008(james) 组=1008(james)
## change 1007 to 2007
root@pts/0 $ usermod -u 2007 newjames
## modified to 2007
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(james) 组=1008(james)
修改GID/group-name
groupmod -g NEW-GID groupname
## james to newjames, but james's group is still 'james'
root@pts/0 $ groupmod -g 2007 newjames
groupmod:“newjames”组不存在
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(james) 组=1008(james)
root@pts/0 $ groupmod -g 2007 james
## try to rename group
root@pts/0 $ groupmod --help
用法:groupmod [选项] 组
-g, --gid GID
将组 ID 改为 GID
-h, --help
显示此帮助信息并推出
-n, --new-name NEW_GROUP
改名为 NEW_GROUP
-o, --non-unique
允许使用重复的 GID
-p, --password PASSWORD
将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR
chroot 到的目录
root@pts/0 $ groupmod -n newjamesgroup james
## find that group was renamed
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(newjamesgroup) 组=1008(newjamesgroup)
## try to change GID
root@pts/0 $ groupmod -g 2007 james
root@pts/0 $ id newjames
uid=2007(newjames) gid= 2007(newjamesgroup) 组= 2007(newjamesgroup)
修改用户HOME显示
最后我们来考虑下前面说过的rename用户名称之后,HOME家目录的显示没有改变。
usermod -d /home/new-user -m new-user
root@pts/0 $ ls -ld /home/james
drwx------ 2 newjames 月 23 11:46 /home/james
root@pts/0 $ ls -ld /home/newjames
ls: 无法访问/home/newjames: 没有那个文件或目录
## change HOME folder
root@pts/0 $ usermod -d /home/newjames -m newjames
root@pts/0 $ ls -ld /home/newjames
drwx------ 2 newjames 月 23 11:46 /home/newjames
root@pts/0 $ ls -ld /home/james
ls: 无法访问/home/james: 没有那个文件或目录
root@pts/0 $
公众号: DailyJobOps
努力奔向全栈运维
与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等;/etc/passwd 和/etc/shadow 文件是互补的;/etc/passwd 是系统识别用户的一个文件,...
linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大家期待吧 命令区 系统管理与维护命令 date date(选项)(参数)|
说明 || :-------- | --------:||...
Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意义的,您不是第一个为此困惑的人,当然,也不会是最后一个:) 大多数的美国人读 ubuntu 时,将 u 作为元音发音,类似单词 who 或者 boo ,重音在第...
要对计算机系统进行相关的操作,就需要有账号,如果很多账号需要对同一文件具有相同的操作权限,那么这个时候就涉及到组的概念了,我们可以将不同的账号加入同一组中,使得该组的所有账号拥有相同的操作权限。日常的linux运维中,就需要对账号和组进行管理,本文就用户和组的增删改操作进...
一、USERS UID为0的用户为管理员用户,任何一个UID为0的用户,都可为管理员用户若系统没有了UID=0的管理员用户,则系统无法启动用户ID:管理员:root,UID为0系统用户:UID为1-499,1-999,对守护进程获取资源进行权限分配普通用户:UID为500-...
贾逸,出生于官宦之家,父亲是东汉大臣,本应幸福长大的贾逸,却遭遇了不幸——父亲被曹魏重臣司马懿的陷害惨遭枭首。自幼无父的贾逸,在他人的指指点点、冷嘲热讽中长大,失去父亲,并没有让他丧失斗志。年少早熟的他,在曹魏大谋士、叔公贾诩的指点下,逐渐了解了东汉乱世,也了解了在乱世中...
监管更加严格!P2P未来只会越来越安全,不要默默离场!!银监会立法,央行印制宣传页为老百姓普及P2P知识,人民日报为行业正名,监管落地,传统银行纷纷主动寻求与规范网贷平台合作,P2P合法地位已经确认,请投资者放心。 P2P越来越安全,请不要默默离场! 在投资者和行业的千呼万...
写下这个题目,内心是满满的温暖,更多的是深深的忏悔,对妈妈的爱来的太迟了。
(一) 当谈到原生态家庭的话题, 当聊到成长中的幸福,我常常对爸爸称赞有加,源于爸爸的担当,乐观,坚强,付出,大爱!在我心中,有一种精神——叫“有爸爸在!每每想到爸爸,就有一股力量!...
1、电力系统:由各级高压的电力线路,将各种发电厂、变电所和电力用户联系起来的一个发电、输电、配电和用电的整体。 2、大型电力系统具有强大的调频和调压能力,以及较大的低于谐波的能力,从而可以有效提高电能质量。 3、交流特高压输电网一般指1000kv及以上电压电网。 4、近年来...
头图为宁夏黄河楼,位于宁夏吴忠市 本文所有配图全部来源影射华夏工作人员 图片制作 | V越野小美 适合哪些人读:爱挑战爱体验新鲜事物的人 影射华夏是什么:这是V越野打造的一款即将上线的产品 大家好,我是V越野刚子,今天是几月几日你比我清楚,但是我有点糊涂了,这几天原本想找了...linux中怎样更改超级用于名称?_百度知道
linux中怎样更改超级用于名称?
前辈们晚上好!小弟是个新手,在安装之前不小心把“超级用户”名称和“普通用户”名称写成了一个,现在我想把“超级用户”改成admin,普通用户还是我的名字,我在终端中操作如下,但是好像没有修改成功,提示:用户longbo目前已登录!请问问题出在哪里?谢谢!...
我有更好的答案
将root降级方法是:修改&#47,默认用户名是root但是可以指定其他用户为超级用户linux中超级用户的用户名貌似不能修改吧,至少我在红帽的系统中没有。在安装的时候只是提示设置超级用户的密码;etc&#47
采纳率:45%
先把longbo踢出去,然后再改。或者等他退出后再修改。
输入sudo su切换至root用户
/etc/passwd里面,把admin的uid,gid都改为0就行了
root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin... ...改哪个?用文档打开显示的是这些,后面还有很多
该文件是一个用户一行,每行用冒号分隔成7段。将admin这个用户的那一行,改成向第一行root那个样子就行了,第3和第4段的数字改成0
前辈,昨日我在Linux中,浏览器中图片上传点不了,今天我换到WIN环境下,您老帮忙瞧瞧,到底改哪个?没看到您说的admin用户那一行。
你这系统都没有叫admin的那个用户,自然没有那一行。你可以再创建一个叫admin的用户,然后将uid,gid改为0
其他1条回答
为您推荐:
其他类似问题
linux的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&nbsp>&nbsp
&nbsp>&nbsp
linux教程 &nbsp>&nbsp
linux下重命名脚本推荐
摘要:今天在浏览网站的时候突然发现一个linux下批量重命名的脚本现在贴出来#!/bin/bash#用法:在终端使用&./renames.sh&运行echo&===本脚本实现批量重命名某种类型文件为相同前缀+数字的文件===&;echo&!警告:一定要确保输入的前缀加上数字后,不和原先已有的文件名重复,否则文件会因为替换而丢失&;echo-------------------------------------------
今天在浏览网站的时候突然发现一个linux下批量重命名的脚本现在贴出来
#!/bin/bash
#用法:在终端使用&./renames.sh&运行
echo &===本脚本实现批量重命名某种类型文件为相同前缀+数字的文件===&;
echo &!警告:一定要确保输入的前缀加上数字后,不和原先已有的文件名重复,否则文件会因为替换而丢失&;
echo --------------------------------------------------------------------
echo &?---输入批量文件所在目录(如:/home/andy/图片)(当前目录输入 .即可)---&;
cd &$directory&;
echo &?---输入要重命名文件类型和前缀(如:png img_ (区分大小写))[以空格分割]---&;
echo &&&&开始批量重命名 $directory 下的 $ext 文件&&&&&&&&&&&&&&&;
let i=0; for it in *.$ do mv &$it& &$begin$i.$ext&; let i=i+1; done
echo &===完成$i个文件批量重命名,文件列表如下:&;
echo -----------------------------------------------------------------------
先新建一个文件然后命名为rename.sh
然后添加可执行权限
sudo chmod +x rename.sh
./rename.sh
之后都是有提示的,先输入要重命名的文件所在目录,再输入文件类型和前缀,文件类型和前缀之间用空格隔开
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
linux下重命名脚本推荐相关信息,包括
的信息,所有linux下重命名脚本推荐相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
服务与支持
账号与支持
关注阿里云
InternationalLinux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了, 由于历史原因,在Perl语言大红大紫的时候,Linux的工具开发者们信仰Perl能取代C,所以大部分工具原来是C版本的都被Perl改写了,因为 Perl版本的支持正则处理,所以功能更加强大,已经不再需要C语言版本的了。
1。如何区分系统里的rename命令是哪个版本的?
输入man rename 看到第一行是
RENAME(1) Linux Programmer&s Manual RENAME(1)
那么 这个就是C语言版本的。【我查看系统上应该就是C语言版本的】
而如果出现的是:
RENAME(1)&&&&&&&&&&& &&Perl Programmers Reference Guide&&&&&&&&&&&&& RENAME(1)
这个就是Perl版本的了!
两个版本的语法差异:
C语言的,按照man上面的注解,
rename的语法格式是:
rename fromtofile
这个命令有三个参数,分别是from : 修改什么名字,to:改成什么名字,file 需要修改的文件是哪些。
用法示例:
比如,有一批文件,都是以log开头的,log001.txt,& log002.txt ....... 一直到log100.txt
现在想要把这批文件的log全部替换为history
rename& log history log*【C的用法~】
这句命令的意思很明白了,把 以log开头的所有文件中的log字符替换为history
这样替换后的文件是:history001.txt,& history002.txt ..... 一直到history100.txt
rename C语言版本的另一个man示例是把后缀名批量修改,
比如我们要将所有jpeg的后缀名图片文件修改为jpg文件。
rename .jpeg.jpg*.jpeg
这样,所有以.jpeg扩展的后缀名全部被修改为.jpg
现在总结一下:
rename C语言版本所能实现的功能:批量修改文件名,结果是每个文件会被用相同的一个字符串替换掉!也就是说,无法实现诸如循环 然后按编号重命名!
2。Perl 版本的批量重命名,带有Perl的好处是,你可以使用正则表达式来完成很奇特的功能。
perl 版本的参数格式:
rename& perlexprfiles
注意,perl版本的rename只有两个参数,第一个参数为perl正则表达式,第二个参数为所要处理的文件
man rename的帮助示例:
1) 有一批文件,以.bak结尾,现在想把这些.bak 统统去掉。
rename&&&& 's/\.bak$//'&&&&&& *.bak
这个命令很简单,因为我还没有系统学习过perl,我不知道perl里替换字符串是不是这么干的,但sed是这么干的,所以如果你有sed或者tr基础,很容易明白,这个替换和sed里的正则语法是一模一样的。
2) 把所有文件名内含有大小字母的,修改为小写字母。
rename&&&&& 'y/A-Z/a-z/'&&&&& *
依然和sed的替换语法一样,不用多解释,如果看不懂的话,可以系统学习一下sed先。
还有几个比较实用的例子:
1) 批量去掉文件名里的空格
Linux文件名本来是不支持空格的,不知道什么时候允许了,当然,在命令行调用文件的时候,空格是很有问题滴,比如你 原来可以直接& mv&
oldfile& newfile& 但有空格就不行了 , 得加双引号:mv "oldfile"& "newfile" 或者用反斜杠转移& \[]
,这样还好,但如果你直接把含有空格的图片名引入Latex文档,Latex生成pdf的时候会直接打印出文件名,之前这个问题苦恼了我很久,我生成的
pdf怎么老是出现文件名呢?后来才发现原来是文件名内含有空格的问题!windows系统下生成的文件名是天生含有空格的,虽然很讨厌,但有些惠普扫描
仪生成的图片默认就加入了空格,没有办法,只好去掉他,在系统研究rename命令前,我是用mv 去除空格的。
网上流程的两个去空格的版本:
1) tr 版:
find . -type f -name "* *" -print |
na=$(echo $name | tr ' ' '_')
if [[ $name != $na ]]; then
mv "$name" $na
这个版本以前我一直用的,不知道哪个网上搜刮来的,当时还没有系统的学习过tr/sed/awk命令。
注解一下,很好理解,find . type f -name "* *" -print 这一句是查找当前目录下所有类型为普通文件的
并且名字之中含有空格的文件,并打印出来,其实find默认就是打印的 这个-print 多余了,然后 通过管道传输给while
循环读取,文件名放到name 变量里,用tr 命令替换空格为下划线。 下面判断如果执行后的名称不相同,使用mv
命令重命名。但这个if判断可有可无,因为find已经查询了所有文件名中含有空格的,那么经过tr 命令后,$na变量肯定不等于$name 变量的。
所以这段代码可以简化:
find . -type f -name "* *" |
na=$(echo $name | tr ' ' '_')
mv "$name" "$na"
tr 可以看着是sed 的一个精简版本,tr 用下划线来替换空格。
还有一个 是sed 版本实现:
for f in *;do mv "$f" `echo "$f" | sed 's/[ ]\+/_/g' `; done
这里的sed表达式还可以这样写:
sed 's/[[:space:]]\+/_/g'
不过记住,sed里的出现一次或多次的加号是需要添加反斜杠的。即:\+,这样就可以了。
好了,这两种办法都太他妈罗嗦了,看看rename实现吧:
rename&&&&& 's/[ ]+/_/g'&&&&&& *
OK就这么简单。
方括号内的空格可以用[:space:]代替,
即可以写成's/[[:space:]]+/_/g'
这里注意,rename 采用的是标准perl正则语法,所以无须将加号转变为反斜杠加号
即+ 不能修改为\+,否则替换失败。
还有几个好玩的例子:
比如统一在文件头部添加上hello&
rename&&&&&&&& 's/^/hello/'&&&&&& *
统一把.扩展名修改为.htm
rename&&&&&&&&& 's/.html$/.htm/'&&&&& *
统一在尾部追加.zip后缀:
rename&&&&&&&&& 's/$/.zip/'&&&&& *
统一去掉.zip后缀:
rename&&&&&&&&& 's/.zip$//'&&&&& *
规则化数字编号名,比如1.jpg, 2.jpg ..... 100.jpg , 现在要使文件名全部三位即1.jpg .... 001.jpg
运行两次命令:
rename&&&&&&&&&& 's/^/00/'&&&&&&&&& [0-9].jpg&&&& # 这一步把1.jpg ..... 9.jpg 变幻为001.jpg .... 009.jpg
rename&&&&&&&&&&& 's/^/0/'&&& &&&&&&&[0-9][0-9].jpg&& # 这一步把10.jpg ..... 99.jpg 变幻为010.jpg ..... 090.jpg
Ok ,rename就研究了这么多,暂时不知道如何在rename中引入动态变量,比如$i++
我测试过i=0;& rename -n "s/^.*$/$((++i))/"&& * 执行后i被自增了1,并非想我想像中那样,可以在每操作一个文件自增一,猜想可能是因为rename批量实现的,导致++i只计算一次!
-n& 用来测试rename过程,并不直接运行,可以查看测试效果后,然后再运行。
好了,再次说明一下,你在使用的时候一定要确认一下你语言的版本,我的是C语言版本~
RENAME(1)&&&&&&&&&&&&&&&&&
Programmer&s Manual&&&&&&&&&&&&&&&& RENAME(1)
&rename from to file...
For example, given the files foo1, ..., foo9, foo10, ..., foo278, the commands
&&&&&&&&&&&&& rename foo foo0 foo?
&&&&&&&&&&&&& rename foo foo0 foo??
&&&&&& will turn them into foo001, ..., foo009, foo010, ..., foo278.
&&&&&&&&&&&&& rename .htm .html *.htm
&&&&&& will fix the extension of your html files.
下面来看一个例子:
最后再来个实际应用当中的问题,先看下以下的图~
看到了吧,我们想把那个图片文件名中的ad字母换成big【注意:拷贝一份,不能直接替换】,那么想想该怎么做呢,对了,就是用rename~
cd /data/openshop_1028/IMG_SERVER/sources/goods/
find ./ -name "*_ad.jpg" -exec cp "{}" {}.1 \;
find ./ -name "*_ad.jpg.1" -exec renamead.jpg.1 big.jpg {} \;
假如要是能够直接替换的话,那就一条命令了:
cd /data/openshop_1028/IMG_SERVER/sources/goods/
find ./ -name "*_ad.jpg" -exec rename ad big {} \;
可以看以下的测试~
参考 http://www.2cto.com/os/383.html
阅读(...) 评论()

我要回帖

更多关于 linux 修改前缀 的文章

 

随机推荐