文件目录类命令

警告
本文最后更新于 2023-10-22,文中内容可能已过时。

文件目录类命令

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

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

  • Windows 中,同级下,目录和文件夹可以重名。但是在 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 中的正则表达式》

0%