linux下怎么样重命名文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下怎么样重命名文件相关的知识,希望对你有一定的参考价值。
参考技术A 这两天在使用Ubuntu系统上进行开发软件的安装,一直遇到创建的androidStudio图标无法使用的问题,创建的图标提示「应用程序启动错误」。在网上也找了很多文章,都是说文件夹中包含空格。但是文件路径确实没包含空格,但是包含-,即"android-studio",所以准备重命名进行尝试,但是遇到"bareword
not
allowed"的问题。
Linux下对文件重命名有两种命令:
mv
,rename
mv很简单,move文件移动
mv
/dir/file1
/dir2/file1
两个参数,第一个是源文件,第二个是目的地,如果第二个参数文件名不一样,则会重命名。
当两个参数不带目录,只有文件名时,那就是重命名了。这是单个文件的重命名。
rename
arg1
arg2
arg3
rename才是真正的批量重命名命令。而且他是3个参数,不是2个。
arg1:旧的字符串
arg2:新的字符串
arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[char],*表示任意多个字符,?表示单个字符,[char]匹配char单个自定的精确字符,可以填写任意字符,foo[a]*表示只匹配fooa开头的文件名,如果一个文件是foobcc.txt,是不会被匹配的。
值的注意的是,此命令在不同的Linux版本也有不同,Debian一系的操作系统别有用法。举例说明:
比如/home下有两个文件
abbcc.txt,
addbb.txt
,
a.txt
我想把a替换为xxx,命令是这样的
:
rename
“a”
“xxx”
*.txt
那么它会首先去匹配有哪些文件需要修改,这里凡是.txt后缀的文件都会被匹配,如果改成?.txt则只会匹配到一个文件,那就是a.txt。然后把匹配到的文件中的a字符替换为xxx,注意测试时abab.txt这样的,只会替换第一个a,有待再了解。
说到Debian一系的操作系统,比如Ubuntu,这个命令这样使用是不对的,报错,向下面这样的:
Bareword
“a”
not
allowed
while
“strict
subs”
in
use
at
(eval
1)
line
1.
经过Google之后发现有这样的说法:
On
Debian-based
distros
it
takes
a
perl
expression
and
a
list
of
files.
you
need
to
would
need
to
use:
rename
‘s/foo/foox/’
*
这里是一个perl表达式,好理解点说就是综合了前两个参数为1个,这样就只需要2个参数,而非上面所说的3个参数形式。
所以在Ubuntu下执行上面举例的重命名时,命令是这样的:rename
‘s/a/xxx/’
*.txt 参考技术B linux下重命名文件或文件夹使用mv既可实现。
例子:
①将一个名为abc.txt的文件重命名为1234.txt
[root@station90 root]#mv abc.txt 1234.txt②将目录a重命名为b
[root@station90 root]#mv a b③将a.txt移动到/b下,并重命名为c.txt
[root@station90 root]#mv a.txt /b/c.txt
Linux下对文件夹和文件重命名、移动和删除
参考技术A Linux下的目录其实就是文件夹,只不过在window这种图形化界面中习惯于叫做文件夹,但是在Linux这种文本界面下会被叫做目录,两者没有区别,都是文件储存的位置。1 Linux下对文件夹进行重命名
mv既可以重命名,又可以 移动文件或者文件夹
例子:将目录A重命名B mv A B
例子:将/a目录移动到/b下,并重命名c mv /a /b/c
2 Linux下降一个文件夹的所有内容都复制到另一个文件夹下
例子:将文件夹A中的所有内容都复制到文件夹B中
cp -r /home/packageA/* /home/packageB/
或者
cp -r /home/packageA/. /home/packageB/
3 删除一个文件夹及其下面所有的文件
例子:删除文件夹A及其下面所有的文件
rm -r /home/packageA
以上是关于linux下怎么样重命名文件的主要内容,如果未能解决你的问题,请参考以下文章