
在linux shell下通过常见的指令,也可以完成我们在文件资源管理器中动动鼠标进行的文件操作。虽然很多时候用起来没有后者方便,但是可以结合shell script以及应用内置的shell command支持,在linux环境下的开发中大放异彩
标题:Linux Shell之文件操作
通配符
通配符的英文名是wildcards(globbing),它可以用来指定某一类特定的文件名,简化文件指令操作对名称的指定
注意,用通配符表示的文件名同样可以被/分割来表示目录层次关系
wildcard |
用途 |
|---|---|
* |
匹配任意多任意字符 |
? |
匹配任意单个字符 |
[characters] |
匹配在中括号内的任意单个字符 |
[!characters] |
匹配不在中括号内的任意单个字符 |
[[:class:]] |
匹配在中括号内类别中的单个字符 |
最后一项中,常见的类别有:
[:alpha:]:字母[:digit:]:数字[:alnum:]:字母或数字[:lower:]:小写字母[:upper:]:大写字母
诸如[A-Z]这样的范围来自更老的版本,慎用
mkdir
用来新建目录(文件夹),后面每跟一个参数就新建一个目录
mkdir dir...
cp
用来复制文件
一对一复制:
cp item1(file) item2(file/directory)多对一复制:
cp item... directory
对于最后的directory不存在的情况会自动创建
特殊参数:
-a,--archive:拷贝文件时附带权限等属性
mv
用来移动文件或者重命名
一对一移动:
item1(file/directory) item2(file/directory)多对一移动:
mv item... directory
注意,可以直接移动目录;对于最后的directory不存在的情况也会自动创建,但在移动目录时会删除被移动的顶层目录,相当于重命名
rm
删除文件或目录,不可恢复
rm item...
特殊参数:
-f,--force:对并不存在的文件不提示,覆盖-i
ln
用来创建硬链接或软链接
- 创建硬链接(
hard links)- 和被链接的文件一样,都可以直接访问硬盘上的内容,实质上指向了
inode: - 可以通过
ls -li之后的第一字段来判断指向的inode - 不能链接目录
- 不能跨文件系统链接
- 和被链接的文件一样,都可以直接访问硬盘上的内容,实质上指向了
ln file link
- 创建软链接(
symbolic links)- 需要凭借被链接的文件来访问硬盘上的内容
- 可以链接目录
- 可以跨文件系统链接
ls的权限字段的第一字符会变成litem使用相对路径时,基于link的位置- 使用相对路径的软链接不容易被重命名破坏
- 被破坏的软链接,或是指向不存在文件的软链接,都会保留并显示,但会提示无法访问
- 对软链接操作时,一般都会操作指向的文件,
rm只会删除链接 - 在
GUI的文件资源管理器里,可以使用Ctrl+Shift并拖动文件来创建软链接 - 软链接的权限是齐全的,真正能否访问取决于被链接的文件
ln -s item link
touch
通用参数
这些参数可以用在上面的多个文件操作指令中,试试看!
-u,--update:更新式操作-i,--interactive:改动(覆盖/删除)文件时提示(默认不)-r,--recursive:递归操作目录下所有文件-v,--verbose:显示操作详情