删除目录、文件 rm(remove)
功能说明:删除文件或目录。
语 法:rm [-dfirv][–help][–version][文件或目录…]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。
参 数:
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
-删除文件夹及文件实例:
#rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
2、创建文件夹
创建目录:mkdir (make directories)
功能说明:建立目录
语 法:mkdir [-p][–help][–version][-m <目录属性>][目录名称]
补充说明:mkdir可建立目录并同时设置目录的权限。
参 数:
-m<目录属性>或–mode<目录属性> 建立目录时同时设置目录的权限。
-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
-添加文件夹实例:
#mkdir test
3、创建文件 touch
功能说明:改变文件或目录时间。
语 法:touch [-acfm][-d <日期时间>][-r <参考文件或目 录>][-t <日期时间>] [–help] [–version][文件或目录…] 或 touch [-acfm][–help][–version][日期时 间][文件或目录…]
补充说明:使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间。
参 数:
-a或–time=atime或–time=access或–time=use 只更改存取时间。
-c或–no-create 不建立任何文件。
-d<时间日期> 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m或–time=mtime或–time=modify 只更改变动时间。
-r<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
-t<日期时间> 使用指定的日期时间,而非现在的时间。
创建文件实例
#touch test.txt
(注:Linux下没有文件后缀名区分文件类型之说,系统文件类型只有可执行文件和不可执行文件)
Linux文件的复制、删除和移动命令使用说明,需要的朋友可以参考下。
4、cp复制命令
cp命令复制文件从一个位置到另一位置。如果目的地文件存在,将覆复写该文件; 如果目的地目录存在,文件将复制到该目录下 (目录不会被复写)。
语法:
#cp [命令开关]… SOURCE DEST
#cp [OPTIONS]… SOURCE… DIRECTORY
#cp [OPTIONS]… –target-directory=DIRECTORY SOURCE…
命令开关:
-a 等同于 -dpR.
–backup[=CONTROL] 对每个存在的目标文件制作备份。
-b 如同 –backup,但是不接受参数。
-f 如果存在的目标文件不能被写操作打开,删除它并且再试一次。
-p 等同于 –preserve=mode,ownership,timestamps (保留模式,所有者和时间戳信息)。
–preserve[=ATTR_LIST] 保留指定的属性 (默认属性:模式,所有者,时间戳)和安全配置, 如果可能的话添加附加属性:连接,所有。
–no-preserve=ATTR_LIST 不保留指定的属性。
–parents 在目录下添加源路径。
示例:
C复制两个文件:
#cp file1 file2
上述cp命令复制文件file1.php 的内容到文件file2.php中。
备份拷贝的文件:
cp -b file1.php file2.php创建文件file1.php的带着符号 ‘~’的备份文件file2.php~。
复制文件夹和子文件夹:
cp -R scripts scripts1上面的 cp 命令从 scripts 复制文件夹和子文件夹到 scripts1。
5、mv移动/重命名命令
mv 命令是move的缩写。 用它从一个目录到一个目录移动/重命名文件。 mv命令不同于cp命令,mv命令是完全的从源移动文件并且把文件移动到指定的目录,这里cp命令只是复制文件的内容从一个文件到另一个文件。
语法:
mv [-f] [-i] 原名称 新名称
命令开关:
-f 在覆盖前不提示(equivalent to相当于 –reply=yes). mv -f 将在没有提示的情况下移动文件(多个文件),即使它将复写存在的目标文件。
-i 在复写另一文件前做出提示
示例:
#mv file1.txt file2.txt
这个命令重命名file1.txt文件的名字为file2.txt。
To move a directory
移动一个目录
#mv hscripts tmp
在上述命令中,如果tmp目录已经存在,mv命令将移动hscripts文件夹/目录下的所有文件,目录和子目录到tmp目录。 如果没有tmp目录,它将重命名 hscripts目录为tmp目录。
移动多个文件/更多文件夹到另一目录
#mv file1.txt tmp/file2.txt newdir
这个命令移动当前目录的file1.txt文件和tmp文件夹/目录的file2.txt文件到newdir目录。
rename重命名
在linux系统中重命名文件,经常用到mv命令,批量重命名文件rename是最好的选择。
linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:
输入man rename 看到第一行是:
RENAME(1) Linux Programmer’s Manual RENAME(1)
这个就是C语言版本的 —我的就是C语言版本
而如果出现:
RENAME(1) Perl Programmers Reference Guide RENAME(1)
则是Perl版本的了
C语言版本格式:rename 原字符串 新字符串 文件名
样例1:目录test下存在两个文件:a_01、a_02,若需要将文件名中的a替换为b,其他部分保持不变,则
1) 若当前位于test目录下,则执行
rename a b *
2) 若当前位于test的父目录,则执行
rename a b test/*
Perl语言版本格式:rename ‘s/原字符串/新字符串/’ 文件名
样例2:题目如样例1,则
1) 若当前位于test目录下,则执行
rename ‘s/a/b/’ *
2) 若当前位于test的父目录,则执行
rename ‘s/a/b’ test/*
脚本实现方法:
find -name “a*” -print |
while read name
do
echo namerename‘s/a/b/′name
done
linux的rename命令
linux正则表达式extensiondoshtml
不同于Dos下的rename命令,linux下的rename命令功能非常强大。
&# man rename
NAME
rename - Rename files
SYNOPSIS
rename from to file…
DESCRIPTION
rename will rename the specified files by replacing the first occurrence of from in their name by to.
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.
And
rename .htm .html *.htm
will fix the extension of your html files.
从上面可以看到:
1. rename命令是三个参数
2. rename命令支持通配符进行批量重命名
3. rename命令会不会支持正则表达式
rename的参数
rename命令的格式:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
第一个参数:被替换掉的字符串
第二个参数:替换成的字符串
第三个参数:匹配要替换的文件模式
例子:rename main1.c main.c main1.c 将main1.c重命名为main.c
rename支持通配符
? 可替代单个字符
* 可替代多个字符
[charset] 可替代charset集中的任意单个字符
例子:文件夹中有这些文件foo1, …, foo9, foo10, …, foo278,
如果使用 rename foo foo0 foo?
会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。
如果使用 rename foo foo0 foo??
foo01到foo99的所有文件都被重命名为foo001到foo099,只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。
如果使用 rename foo foo0 foo*
foo001到foo278的所有文件都被重命名为foo0001到foo0278,所有以foo开头的文件都被重命名。
如果使用 rename foo0 foo foo0[2]*
从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。
rename支持正则表达式
例子:
字母的替换rename “s/AA/aa/” * //把文件名中的AA替换成aa
修改文件的后缀rename “s//.html//.php/” * //把.html 后缀的改成 .php后缀
批量添加文件后缀rename “s/$//.txt/” * //把所有的文件名都以txt结尾
批量删除文件名rename “s//.txt//” * //把所有以.txt结尾的文件名的.txt删掉