【cmd】文件操作

来源:互联网 发布:spyder python怎么运行 编辑:程序博客网 时间:2024/06/06 07:29

前言

        cmd提供了对文件操作一的一系列命令,本文将从文件的建立、修改、替换、删除、复制、移动、链接建立、文件的属性、文件所有以及访问权限控制对文件操作命令进行总结。


正题

1.文件的新建

文件的新建主要通过重定向>来建立,例如将ipconfig /all > ip_info.txt即是将ipconfig的内容重定向到ip_info.txt文件中。这里主要探讨建立空白文件的方式,建立空白文件,思路是将输出为空的命令重定向到文件中即可完成。然而我们知道,echo总是会在输出后加上一个空行,因此需要考虑别的有效的途径。一种途径是将nul设备的内容copy到新文件中:

copy nul > blank_file

也可以通过

type nul > blank_file

cd. > blank_file

这些命令的共同特点是:输出为空,且不会产生任何“副作用”(cd..也可以新建文件,但是会产生返回上级目录的“副作用”)

参考:http://zhidao.baidu.com/link?url=TtYr5l4xLo1hMYSjMBsetCUk_Pc4xFewvnvKKjf1SGU1986svf3pjW6HNA9fsi0diauHEq_mUZ--YlRMOYPZRq

2.文件的修改

文件的修改可以通过>>进行追加内容,其他修改主要依靠编辑器实现。

3.文件的替换

replace 文件 目录 [/A][/S][/U]

不加选项 替换目录中的同名文件,如果不存在同名文件,则跳过

/A 相当于copy一份文件到目录中,如果目录中存在文件,则跳过

/S 替换目录所有子目录中的文件

/U 仅替换目录中较旧的文件

4.文件的复制

copy [/[-]Y] [/L][/A][/B] source dest

如果source为文件,dest为文件,则复制source为dest

如果source为文件,dest为目录,则复制source为dest\source

如果source为目录,dest为目录,则将source中文件复制到dest中

/Y如果重名,则直接覆盖,不询问

/-Y如果重名,则提示已存在同名文件夹,询问是否覆盖(默认)

/L如果souce为链接,则复制链接而不是所链接的文件过去(默认复制链接对应的文件)

/A 明确说明source为ascii文本文件

/B 明确说明source为二进制文件

另外一种用法:copy file1 + file2 + ... filen 将file1、file2 ...的内容合并为filen(这里存在一个问题:经过notepad++查看发现最后会出现一个sub字符)


5.文件的移动

move [/[-]Y][Y] source dest

将文件/目录移动到对应目录中(如果需要重命名,可以指定一个新的文件或者目录名)

[-[Y]] 语义与copy相同


6.文件重命名

ren oldname newname

可以看到,这个也可以使用move命令来实现(事实上因此linux中并没有特意提供重命名命令)

7.删除文件

del/erase target[/S][/F][/Q][/A]

当target为文件时,直接删除文件(无法在回收战恢复),为目录时,只删除目录下的子文件

/S 删除目录以及其子目录下所有文件(不删除目录)

/F 强制删除只读文件

/Q 安静模式

/A 删除具有特定属性的文件(/A与dir /A中/A用法相同)


8.创建链接

mklink link target [/D][/H][/J]

默认创建target的soft link(软链接)

/D 当target为目录时,需要附加该参数

/H 创建hard link,区别与soft link,hard link指向文件的结点而非文件名,当更改target的文件名时,soft link仍然指向原来的文件名,因此点击时会弹出“文件不存在“,而hard link则不会

/J 创建目录的junction,junction与link的区别主要表现在link始终指向本机文件,而junction可以指向远程文件


9.删除链接

删除文件链接使用del/erase命令即可

删除目录链接或者junction不能使用del/erase命令,del会删除链接所指向的文件夹下的子文件,要删除链接或者junction需要使用rd


9.文件的属性

attrib [+|-] [R|A|S|H|I]target [/S][/D][/L]
R
 只读文件
A
 归档文件
S
 系统文件
H
 隐藏文件
I not content indexted file
/S
 对target以及其子项应用
/D
 process file 
/L
表示target为一个链接


10.文件的所有权

takeown /F 文件名 [/A]

将文件所有者设置为当前用户

/A 将文件所有者设置为管理员

11.文件的访问权限

只有文件的所有者或者管理员才能设置访问权限

icacls name /grant username:permission

为username分配指定权限

icacls name /deny username:permission

拒绝username指定权限

permission:

F 所有权限

R 只读权限

W 只写权限

M 修改权限

RX 读取与执行权限

D 删除权限

icacls name /save aclfile 

将name的权限设置保存到acl文件

icalcs directory /restore aclfile

将acl的设置恢复到dicrectory下的文件中


总结

cmd文件的操作较多较杂,这里系统的进行整理一下,其中可以看到存在不少冗余与不规范的情况,因此cmd命令相对于linux尚不够完备,不过对于大多数的操作已经足够了。

0 0