文件目录类命令

文件目录类命令

Linux 中一切皆文件,所以跟文件相关的操作需要重点理解和掌握

Windows 和 Linux 文件系统的一些区别

Linux 文件命名基本上没有限制,除了 / 之后几乎可以包含任何字符,包括正则特殊字符

所有命令的输入文件名和文件夹名称的参数都可以用通配符(准确地说是 glob 风格通配符),善用通配符,提高效率

请看《Bash 的模式拓展》


在 linux 下,隐藏文件是以 . 开头,其实所有的指令都是可以操作隐藏文件的,文件名明确,没有不能操作的,只要有权限就都可以,这是一个权限问题。但是在用 folder/* 匹配文件的时候,默认是无法匹配到隐藏文件的,这是一个匹配问题,

* 匹配所有可见文件,.* 匹配所有隐藏文件,但是会匹配 ...,所以优化一下,使用 .[^.]* ,然后将 *.[^.]* 合并为 {.[^.],}*,这样就可以匹配除了 ... 以外的包含隐藏文件的所有文件,以后就可以用这个来操作文件夹中的可见文件和隐藏文件


ls 通过 -a 参数可以看到 * 匹配的隐藏文件

rmdir 不需要带任何参数就可以删除 * 匹配的隐藏文件

cprmmv 都可以直接配合 {.[^.],}* 来操作包含隐藏文件在内的所有文件,例如 cp -R source1/* target 复制不了隐藏文件, cp -R source1/{.[^.],}* target 就可以。

cp 还有一种简单情况 将 * 换成 . 即可复制隐藏文件,例如 cp -R source1/* target 复制不了隐藏文件, cp -R source1/. target 就可以。


Linux 中的正则表达式,查看《Linux 中的正则表达式》