⑴ 初学linux命令,问一下用cp命令如何修改带空格的文件或目录名称
空格前加上转义符号“\”就可以了
⑵ linux中如何给文件夹内的所有文件进行随机重命名
使用cp命令进行复制,格式为: cp 文件名 另外一个目录的完整路径/新的文件名比如,将/opt文件夹中的test文件,复制到/var文件夹内,并重命名为test2,命令如下: cp /opt/test /var/test2
⑶ linux里怎么修改TXT文档
1、进入Ubuntu桌面后,打开终端,快捷键为ctrl+alt+T。
⑷ linux下开发脚本搜索子目录批量更改文件名
前言
本文主要给大家介绍了关于Linux shell用sed批量更改文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
示例
去除特定字符
目标:将 2017-01-01.jpg、2018-01-01.jpg 改为 20170101.jpg、20180101.jpg
方法:将所有 - 替换为空
for file in `ls | grep .jpg`
do
newfile=`echo $file | sed 's/-//g'`
mv $file $newfile
done
这里使用sed进行标准输出的字符串替换,其通用格式如下:
stdout | sed 's/pattern/replace/'
上述示例中,在末尾添加g用于替换所有匹配项,而不仅仅替换第一个匹配项。
中间插入字符
目标:将 book01.txt、paper02.txt 改为 book-01.txt、paper-02.txt
方法:用分组匹配分别获取待插入位置两侧的字符串,再通过反向引用实现替换
for file in `ls | grep .txt`
do
newfile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`
mv $file $newfile
done
分析
上述示例首先通过 ls 和 grep 命令得到待改名的文件列表,然后用 sed 命令进行字符串的替换,最后再使用 mv 命令来完成文件名的更改。
获取待改名文件列表的方法有很多,可以通过 find 命令,也可以直接给出字符串,我们将在下文中提到。
注意 for 循环后面的 ls | grep .txt,这条命令用两个反单引号括了起来,与 $(ls | grep .txt) 的作用相同,被包围的字符串会被当作命令执行,然后返回字符串结果。
文件名包含空格的解决方法
我们可以直接将文件列表写到 for 循环中,而不是通过命令来得到,例如:
for file in "file1 file2 file3"
do
...
done
可以看到 for 循环是通过空格来分割字符串,因此如果待更改的文件名中包含空格的话,就会被拆分成多个文件名,从而出错。
要解决这个问题,我们可以将 IFS(内部字段分隔符)设置为换行符 \n,这样一来,for 循环就会按行来获取变量的值,确保每次获取的确实是一个完整的文件名。
设置 IFS 变量的命令需要放在 for 循环之前:
IFS=$'\n'
for file in `ls`
do
...
done
也可以直接使用 while read 命令一次读取一行到变量 file 中:
ls | grep "*.txt" | while read file
do
...
done
使用 find 获取文件列表
之前的示例中,我们是通过 ls 命令来获取文件列表。该命令只能获取某个目录的文件,而且没法进行多种条件的筛选。
而一说到文件的查找,不得不提到功能强大的 find 命令。该命令可以在多个层次的目录中查找文件,并能够设定诸如创建时间、文件大小、所有者等多种条件,查找起文件来特别方便灵活。
用 find 命令来获取文件列表,再用 sed 命令配合正则表达式来修改文件名,这两个命令的结合几乎能完成所有常见的批量改名任务。
例如,将所有大于1M,且后缀为txt或jpg的文件,由形如 book_20170101.txt、image_20170101.jpg 的文件改名为 20170101-book.txt、20170101-image.jpg,代码如下:
for file in `find . -size +1M -name "*_*.txt" -o -name "*_*.jpg"`
do
newfile=`echo $file | sed 's/\([a-z]\+\)_\([0-9]\+\)./\2-\1./'`
mv $file $newfile
done
⑸ Linux cp命令怎么使用
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的命令一样,功能十分强大。
语法: cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义如下:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
例子:
Cp -i file1 file2 (将文档 file1 复制成 file2 . –i为提示确认。)
cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.
cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.
cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下,档名为file2
cp -r dir1 dir2 (recursive ) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2.
⑹ 请教linux复制文件时更改文件名
您好!
可以是用cp命令的方式进行复制并且更改文件名。
下图是创建一个a文件,并用cp 命令复制a并且更改位rename_a,查看复制a前的MD5和复制后的rename_a的MD5值相同,证明文件复制并且更名了。
⑺ linux下怎么复制一个文件到另外一个目录并且重命名
用Linux的cp命令复制文件,目标文件参数指定成一个新的文件名,就可以实现复制文件的同时重命名文件的功能,比如下面这条命令将/root/fileaaa赋值到/home目录下并重命名为filebbb:
cp
/root/fileaaa
/home/filebbb
⑻ 批处理按照顺序复制文件到目标目录并修改文件名
去下载一个linux下使用的软件,cp命令这个软件。(当然是下载windows版本的,linux的命令写在批处理里面逐条执行)
cmd进入cp软件所在的目录才可以运行的。
复制
cp 文件路径 新路径(全称,例如:cp c:\windows\a.txt 一个空格 d:\123\b.txt)
删除
rm -rf 文件名(无提示直接删除)
在windows下操作的命令可以参考下linux的命令。大同小异。
⑼ linux 下怎么修改文件名 及拷贝文件
您好!
可以是用cp命令的方式进行复制并且更改文件名。
下图是创建一个a文件,并用cp
命令复制a并且更改位rename_a,查看复制a前的MD5和复制后的rename_a的MD5值相同,证明文件复制并且更名了。
⑽ Linux更改文件名保留源文件的命令是什么
有三种方法,一种使用mv命令,直接重命名,保留源文件内容,另外一种建立软连接ln -s命令,可以保留源文件内容及原名称,类似于Windows快捷方式。还有一种cp命令复制一个副本出来。