个人琢磨研究,分类混淆知识点(偶尔更新)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人琢磨研究,分类混淆知识点(偶尔更新)相关的知识,希望对你有一定的参考价值。
ls相关(.*和*)- ls .*
- 显示当前文件夹内的以.开头的文件,包括隐藏文件和隐藏文件夹
- 显示当前文件夹.内的所有的非隐藏文件和文件夹(任意名称)
- 显示当前文件夹.内的以.开头的文件夹(隐藏文件夹)和它内部第一层文件和文件夹;但不显示此文件夹内的文件夹内的文件,不显示此文件夹下的以.开头的文件(即隐藏文件)
- 查看当前文件夹父目录..内的非隐藏文件;同上不显示父目录内的文件夹内的文件,不显示父目录内的以.开头的文件(也就是隐藏文件)
- ls .* -a: 显示当前文件夹内所有文件,包括隐藏文件;以及其父目录内的第一层所有文件包括隐藏,以及以.开头的子目录内第一次呢该文件,包括隐藏。
- ls .* -R:显示当前文件夹内所有文件包括隐藏文件,其父目录内的所有文件和其子目录下的所有层文件(不包括隐藏文件和隐藏文件夹,而且当前目录的不隐藏文件会再次显示一遍)
- ls .* -a -R:比上面多了隐藏.
- ls *. :显示当前文件夹内以.结尾的所有文件和文件夹,但不显示隐藏文件
- ls *.*:显示当前文件夹内的中间包含.的所有文件和文件夹,但是注意,不包含隐藏文件,因为*不能显示隐藏文件
- ls * :显示当前文件夹内的所有非隐藏文件和文件夹,和当前文件夹内第一层所有非隐藏文件和文件夹
- ls * -a:显示当前文件夹内的所有非隐藏文件和文件夹,并显示这些文件夹内的第一层所有文件包括隐藏文件
- ls * -a -R:显示当前文件夹内的所有非隐藏文件和文件夹,并显示这些文件夹内的所有层所有文件包括隐藏文件
- ls * -R:显示当前文件夹内的所有非隐藏文件和文件夹,包括其所有子目录下的所有层的非隐藏文件.
rm相关
- rm -rf .*
- 或者 rm -rf ./.
上面那两个相当于一个命令(参考ls .),这个是有问题的命令,虽然也能删除当下文件夹内的隐藏文件和隐藏文件夹(和里面的所有内容),并且保留非隐藏文件和文件夹, 但是这个命令会尝试删除. 和.. 只不过跳过了。 - rm -rf .[^.]* 删除当前文件夹内的所有隐藏文件和隐藏文件夹(包括隐藏文件夹内的其中所有内容),但是不删除非隐藏文件和文件夹。和上面的命令同一个结果,但是不报错。
- rm -rf ./*
删除当前目录下的所有非隐藏文件和非隐藏文件夹(包括非隐藏文件夹内其中所有内容,即使里面有隐藏文件也删除) - rm -rf ./.
错误的命令,不能这样执行
6 .可以先创建一个文件夹的软链接,然后用 rm -rf 软链接/ 的方式 删除源文件夹内的所有内容 但是保留原文件夹。注意软链接后面必须加上/,不然就把这个软链接本身给删掉了,参考一下下面的ls 软链接相关内容。
17:28[[email protected] /data/cptest/zhang]# rm -rf ./.*
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘./.’
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘./..’
17:31[[email protected] /data/cptest/zhang]# ls -a
. ..
软链接目录相关(和ll相关部分,与rm相关部分查看rm指令中解释)
- ls 软链接:
ll 软链接 或者 ll 软链接 -d(加不加-d都一样):显示这个软链接本身的信息
ll 软链接/ :显示这个软连接连接到的目录内的文件信息
ll 软链接/ -d :这个相当于 ll 软链接目录 -d ,显示目标目录文件夹本身的信息
附加: ll 目录 都是显示目录下的内容, 加不加/ 结果都一样。 只有加了-d 显示的结果才是本身文件夹的信息。 只不过加了-d 以后,结果也会显示加不加/,有细微差别:22:04[[email protected] /data]# ll cptest/ -d drwxr-xr-x. 3 root root 19 Mar 12 21:54 cptest/ 22:04[[email protected] /data]# ll cptest -d drwxr-xr-x. 3 root root 19 Mar 12 21:54 cptest
21:55[[email protected] /data]# ll lintst
lrwxrwxrwx. 1 root root 6 Mar 11 20:03 lintst -> cptest
21:55[[email protected] /data]# ll lintst/
total 4
drwx------. 15 zhang zhang 4096 Mar 9 23:39 zhang
21:55[[email protected] /data]# ll lintst/ -d
drwxr-xr-x. 3 root root 19 Mar 12 21:54 lintst/
21:56[[email protected] /data]# ll cptest
total 4
drwx------. 15 zhang zhang 4096 Mar 9 23:39 zhang
21:56[[email protected] /data]# ll cptest -d
drwxr-xr-x. 3 root root 19 Mar 12 21:54 cptest
cp相关
- cp -a /root/. /data/ :将/root目录内的所有文件包括隐藏文件拷贝到/data里面
- cp -a /root/(反向单引号) ls -A /root (反向单引号) /data/
实现了和1中相同的功能 - cp -a /root/ /data :在data下创建新root目录并拷贝进去,前提是data下并没有root这个名字的目录
- cp -a /root/ /data/rootbak:在data下创建新rootbak目录并考进去
- cp -a /root/.[^.]* /data/ :把root下的所有隐藏文件,隐藏文件夹(包括里面的所有隐藏文件和非隐藏文件),考到data下
- cp -a /root/* /data :root下的非隐藏文件和非隐藏文件夹(包括里面的所有非隐藏文件和隐藏文件)考到data下
- cp -a /root/.* :加-a的话也有-R ,这个就参考ls 那部分即可,基本上没有这个用法
无聊测试
自己测试一下以下各行代码,看看正确和错误结果怎么显示和定向
1.t是当前文件夹下的普通文件
ls /eraf /home 1>1.t 2>1.t
ls /eraf /home 1>>1.t 2>1.t
ls /eraf /home 2>>1.t 1>1.t
ls /eraf /home 2>1.t 1>1.t
ls /eraf /home 2>1.t 2>&1 1>1.t
ls /eraf /home 2>>1.t 2>&1 1>1.t
ls /eraf /home 2>&1 2>1.t 1>1.t
ls /eraf /home 2>&1 2>>1.t 1>1.t
总结常用的
显示隐藏文件和隐藏文件夹 .[^.]
显示非隐藏文件和非隐藏文件夹 *
-r或者-R 在各命令中 则包含这些文件夹中的所有内容,不论是隐藏还是非隐藏
一些其它杂项
- pstree命令下可以看到如果多次su转换,则多开很多bash
- 因此su su在切换之后要退出,用exit或者logout
- 硬链接其实是普通文件:在7种文件类型中一个硬链接坐前面的文件类型中显示的并不是l(链接类型),而是-普通文件类型
以上是关于个人琢磨研究,分类混淆知识点(偶尔更新)的主要内容,如果未能解决你的问题,请参考以下文章
append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]
Python+Pycharm和 VisualStudio C++社区版使用PK及易混淆的语法问题