为什么不用原来的网站做推广,宁波自助模板建站,济南室内设计公司排名,网站建设临沂Linux文件与目录管理 1.目录与路径1.1 cd1.2 pwd1.3 mkdir1.4 rmdir1.5 ls1.6 cp1.7 rm1.8 mv 2.可执行文件路径的变量#xff1a;$PATH3.从字符串中获取目录名称和文件名称4.文件内容读取4.1 cat与tac4.2 nl4.3 more和less4.4 head与tail4.5 od 5 使用touch来改变文件的时间6… Linux文件与目录管理 1.目录与路径1.1 cd1.2 pwd1.3 mkdir1.4 rmdir1.5 ls1.6 cp1.7 rm1.8 mv 2.可执行文件路径的变量$PATH3.从字符串中获取目录名称和文件名称4.文件内容读取4.1 cat与tac4.2 nl4.3 more和less4.4 head与tail4.5 od 5 使用touch来改变文件的时间6 文件的隐藏属性7.文件的搜索7.1 指令文件的搜索7.2 普通文件的搜索 1.目录与路径
几种特殊的目录
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表“目前使用者身份”所在的主文件夹
~account 代表 account 这个使用者的主文件夹 account是个帐号名称[fleCentOS7 ~]$ pwd
/home/fle
[fleCentOS7 ~]$ cd .
[fleCentOS7 ~]$ cd ..
[fleCentOS7 home]$ cd ~
[fleCentOS7 ~]$ cd -
/home
[fleCentOS7 home]$ pwd
/home
[fleCentOS7 home]$ 根目录的.和..其实都是根目录本身
[fleCentOS7 home]$ cd /
[fleCentOS7 /]$ ls -al
总用量 28
dr-xr-xr-x. 17 root root 244 6月 21 16:56 .
dr-xr-xr-x. 17 root root 244 6月 21 16:56 ..
-rw-r--r-- 1 root root 0 6月 21 16:56 .autorelabel
lrwxrwxrwx. 1 root root 7 5月 18 20:57 bin - usr/bin
dr-xr-xr-x. 6 root root 4096 5月 18 21:03 boot
drwxr-xr-x 20 root root 3400 9月 30 09:21 dev
drwxr-xr-x. 179 root root 12288 10月 12 19:47 etc
drwxr-xr-x. 7 root root 73 9月 29 16:55 home
lrwxrwxrwx. 1 root root 7 5月 18 20:57 lib - usr/lib
lrwxrwxrwx. 1 root root 9 5月 18 20:57 lib64 - usr/lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 media
drwxr-xr-x. 2 root root 6 4月 11 2018 mnt
drwxr-xr-x. 3 root root 16 5月 18 21:00 opt
dr-xr-xr-x 243 root root 0 9月 28 21:04 proc
dr-xr-x---. 7 root root 247 10月 13 20:14 root
drwxr-xr-x 58 root root 1600 10月 13 06:31 run
lrwxrwxrwx. 1 root root 8 5月 18 20:57 sbin - usr/sbin
drwxr-xr-x. 2 root root 6 4月 11 2018 srv
dr-xr-xr-x 13 root root 0 9月 28 21:04 sys
drwxrwxrwt. 18 root root 4096 10月 13 20:14 tmp
drwxr-xr-x. 13 root root 155 5月 18 20:57 usr
drwxr-xr-x. 24 root root 4096 5月 18 21:15 var可以看到.和..的属性都是一样的。 下面介绍四种最常见的目录操作方式cd、pwd、mkdir、rmdir
1.1 cd
cd是Change Directory的缩写 这是用来变换工作目录的指令。看一个例子
[fleCentOS7 ~]$ pwd //显示当前目录登录之后的终端就是登录账号的主文件夹
/home/fle
[fleCentOS7 ~]$ su //切换root身份目录不变
密码
[rootCentOS7 fle]# pwd //显示当前目录其实[rootCentOS7 fle]中的fle的位置就是表示了目前所处的文件夹
/home/fle
[rootCentOS7 fle]# cd ~ //由于当前的账号是root所以~表示的是/root也就是root账号的主文件夹
[rootCentOS7 ~]# pwd
/root
[rootCentOS7 ~]# cd - //cd -表示去上一次的目录就是/home/fle身份是不会变的
/home/fle
[rootCentOS7 fle]# pwd
/home/fle
[rootCentOS7 fle]# 1.2 pwd
pwd是Print Working Directory的缩写 也就是显示目前所在目录的指令。
[fleCentOS7 /]$ cd /lib
[fleCentOS7 lib]$ pwd
/lib
[fleCentOS7 lib]$ pwd -P
/usr/libpwd 命令的 -P 选项用于显示物理路径即解析符号链接后的实际路径。当你在符号链接目录中运行 pwd 命令时使用 -P 选项会返回该符号链接所指向的真实物理路径。根目录下的lib目录是一个链接目录实际的内容存放在/usr/lib中。
1.3 mkdir
mkdir用于创建新的空目录。
[fleCentOS7 lib]$ mkdir --help
用法mkdir [选项]... 目录...
Create the DIRECTORY(ies), if they do not already exist.Mandatory arguments to long options are mandatory for short options too.-m, --modeMODE set file mode (as in chmod), not arwx - umask-p, --parents no error if existing, make parent directories as needed-v, --verbose print a message for each created directory-Z set SELinux security context of each created directoryto the default type--context[CTX] like -Z, or if CTX is specified then set the SELinuxor SMACK security context to CTX--help 显示此帮助信息并退出--version 显示版本信息并退出GNU coreutils online help: http://www.gnu.org/software/coreutils/
请向http://translationproject.org/team/zh_CN.html 报告mkdir 的翻译错误
要获取完整文档请运行info coreutils mkdir invocation重上面可以看到mkdir有4哥可选的参数 ①-m 设定目录的权限 ②-p 当所创建的目录中存在多层目录结构时不会报错如mkdir ./test1/test2/test3这样这样的写法在创建的时候是先创建test3目录而./test1/test2目录不存在所以会报错加-p就不会报错。 ③-v 在每创建一个目录时打印信息告诉你创建了哪个目录。 ④-Z 为每个创建的目录设置默认的 SELinux 安全上下文。
其中常用的是-m和-p:
[fleCentOS7 桌面]$ mkdir -m 777 test1
[fleCentOS7 桌面]$ mkdir ./test1/test2/test3
mkdir: 无法创建目录./test1/test2/test3: 没有那个文件或目录
[fleCentOS7 桌面]$ mkdir -p ./test1/test2/test3
[fleCentOS7 桌面]$ cd ./test1
[fleCentOS7 test1]$ tree
.
└── test2└── test32 directories, 0 files
[fleCentOS7 test1]$ cd ..
[fleCentOS7 桌面]$ ls -l test1
总用量 0
drwxrwxr-x 3 fle fle 19 10月 13 21:34 test21.4 rmdir
删除空的目录非空的目录不能用rmdir来删除。
[fleCentOS7 test1]$ rmdir --help
用法rmdir [选项]... 目录...
删除指定的空目录。--ignore-fail-on-non-empty忽略仅由目录非空产生的所有错误-p, --parents remove DIRECTORY and its ancestors; e.g., rmdir -p a/b/c issimilar to rmdir a/b/c a/b a-v, --verbose output a diagnostic for every directory processed--help 显示此帮助信息并退出--version 显示版本信息并退出GNU coreutils online help: http://www.gnu.org/software/coreutils/
请向http://translationproject.org/team/zh_CN.html 报告rmdir 的翻译错误
要获取完整文档请运行info coreutils rmdir invocation下面的例子先创建目录再删除目录:
[fleCentOS7 桌面]$ rm -r test1
[fleCentOS7 桌面]$ mkdir -p test1/test2/test4 test1/test3
[fleCentOS7 桌面]$ touch test1/test3/file
[fleCentOS7 桌面]$ tree test1
test1
├── test2
│ └── test4
└── test3└── file3 directories, 1 file
[fleCentOS7 桌面]$ rmdir -p test1/test2/test4
rmdir: 删除目录 test1 失败: 目录非空
[fleCentOS7 桌面]$ tree test1
test1
└── test3└── file1 directory, 1 file从上面的结果可以看出rmdir的-p选项会一直删除空目录直到遇到非空的父目录。对于非空的目录使用rm -r命令来删除。
1.5 ls
ls用来列举目录。 其中常用的是-l -a -d。注意ls命令后面是可以跟目录的列出指定目录的文件。
[fleCentOS7 ~]$ ls -a /
. .autorelabel boot etc lib media opt root sbin sys usr
.. bin dev home lib64 mnt proc run srv tmp var
[fleCentOS7 ~]$ ls -l /
总用量 28
lrwxrwxrwx. 1 root root 7 5月 18 20:57 bin - usr/bin
dr-xr-xr-x. 6 root root 4096 5月 18 21:03 boot
drwxr-xr-x 20 root root 3360 10月 14 21:34 dev
drwxr-xr-x. 179 root root 12288 10月 14 21:34 etc
drwxr-xr-x. 7 root root 73 9月 29 16:55 home
lrwxrwxrwx. 1 root root 7 5月 18 20:57 lib - usr/lib
lrwxrwxrwx. 1 root root 9 5月 18 20:57 lib64 - usr/lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 media
drwxr-xr-x. 2 root root 6 4月 11 2018 mnt
drwxr-xr-x. 3 root root 16 5月 18 21:00 opt
dr-xr-xr-x 241 root root 0 10月 14 21:33 proc
dr-xr-x---. 7 root root 247 10月 14 20:58 root
drwxr-xr-x 58 root root 1600 10月 14 22:08 run
lrwxrwxrwx. 1 root root 8 5月 18 20:57 sbin - usr/sbin
drwxr-xr-x. 2 root root 6 4月 11 2018 srv
dr-xr-xr-x 13 root root 0 10月 14 21:33 sys
drwxrwxrwt. 19 root root 4096 10月 14 22:08 tmp
drwxr-xr-x. 13 root root 155 5月 18 20:57 usr
drwxr-xr-x. 24 root root 4096 5月 18 21:15 var
[fleCentOS7 ~]$ ls -ld /
dr-xr-xr-x. 17 root root 244 6月 21 16:56 /1.6 cp
用于复制。 下面使用常用的-a -i -p -r进行实验。 (1)使用-i来提示是否覆盖
[rootCentOS7 ~]# ls -a
. .bash_logout .config .local .xautheLKGRv
.. .bash_profile .cshrc .pki .xauthWSzuls
anaconda-ks.cfg .bashrc .dbus .tcshrc
.bash_history .cache initial-setup-ks.cfg .viminfo
[rootCentOS7 ~]# cd .bashrc
-bash: cd: .bashrc: 不是目录
[rootCentOS7 ~]# cp -i ~/.bashrc /tmp/.bashrc
[rootCentOS7 ~]# cp -i ~/.bashrc /tmp/.bashrc
cp是否覆盖/tmp/.bashrc n
[rootCentOS7 ~]# cd /tmp
[rootCentOS7 tmp]# ls -a
.
..
.bashrc
.esd-1000
.font-unix
.ICE-unix
ssh-lzD8MBGwfOho
systemd-private-02ca80909c574bad90e53ac0130e9364-bolt.service-uuHLVh
systemd-private-02ca80909c574bad90e53ac0130e9364-chronyd.service-PgzlPF
systemd-private-02ca80909c574bad90e53ac0130e9364-colord.service-zZD2Mw
systemd-private-02ca80909c574bad90e53ac0130e9364-cups.service-tH2JOm
systemd-private-02ca80909c574bad90e53ac0130e9364-fwupd.service-uEKbie
systemd-private-02ca80909c574bad90e53ac0130e9364-named.service-EIEAvA
systemd-private-02ca80909c574bad90e53ac0130e9364-rtkit-daemon.service-74xmIZ
.Test-unix
tracker-extract-files.1000
VMwareDnD
vmware-root_767-4256479648
vmware-root_785-4282170929
.X0-lock
.X11-unix
.XIM-unix
yum_save_tx.2024-10-14.06-31.ojtghv.yumtx
yum_save_tx.2024-10-15.06-09.9E4H_u.yumtx
yum_save_tx.2024-10-22.11-29.PJ1x7e.yumtx
yum_save_tx.2024-10-23.06-29.YZom6B.yumtx2不加任何选项的复制 cp不加任何选项的情况下是不会复制文件的User、Group的文件的创建时间也会不一样。
[rootCentOS7 tmp]# cp /var/log/wtmp .
[rootCentOS7 tmp]# ls -l /var/log/wtmp ./wtmp
-rw-rw-r--. 1 root utmp 63360 10月 23 10:11 /var/log/wtmp
-rw-r--r-- 1 root root 63360 10月 23 16:45 ./wtmp从上面可以看到使用cp命令时如果没有加任何的选项则复制后的文件权限和所属User、Group是会变的。另外复制的文件的创建时间也会是cp命令的执行时间。
[fleCentOS7 ~]$ su
密码
[rootCentOS7 fle]# touch fle
[rootCentOS7 fle]# ls -l fle
-rw-r--r-- 1 root root 0 10月 23 18:24 fle
[rootCentOS7 fle]# su fle
[fleCentOS7 ~]$ cp fle fle_copy
[fleCentOS7 ~]$ ls -l fle fle_copy
-rw-r--r-- 1 root root 0 10月 23 18:24 fle
-rw-r--r-- 1 fle fle 0 10月 23 18:24 fle_copy从上面的结果可以看出使用fle账号进行复制时文件的User和Group都是fle这是因为cp命令希望的是用什么账号进行复制操作后这个复制的文件应该是属于这个账号的。
3使用-a选项来保持完全的复制
[rootCentOS7 tmp]# cp -a /var/log/wtmp .
cp是否覆盖./wtmp y
[rootCentOS7 tmp]# ls -l /var/log/wtmp ./wtmp
-rw-rw-r--. 1 root utmp 63360 10月 23 10:11 /var/log/wtmp
-rw-rw-r--. 1 root utmp 63360 10月 23 10:11 ./wtmp可以看到使用-a选项可以复制文件的权限和User、Group。 对于一些没有读取权限的文件使用-a来复制其实也是无效的
[fleCentOS7 tmp]$ cp -a /etc/shadow /tmp
cp: 无法打开/etc/shadow 读取数据: 权限不够Tips:由于fle的身份并不能随意修改文件的拥有者与群组与拥有者、 群组相关的 原本fle身份无法进行的动作 即使加上 -a 选项 也是无法达成完整复制权限的 4使用-r来递归复制用于复制目录
[fleCentOS7 桌面]$ ls
dir familyOfWang familyOfZhu file file.txt fle.txt test1
[fleCentOS7 桌面]$ tree test1
test1
├── fle
└── test3└── file1 directory, 2 files
[fleCentOS7 桌面]$ cp -r test1 test1_copy
[fleCentOS7 桌面]$ tree test1_copy
test1_copy
├── fle
└── test3└── file1 directory, 2 files(5)使用-s -l来创建链接复制文件 使用-l复制的是文件本身 使用-s复制的是文件的链接
[fleCentOS7 桌面]$ touch file
[fleCentOS7 桌面]$ vim file
[fleCentOS7 桌面]$ cp -l file file_l
[fleCentOS7 桌面]$ cp -s file file_s
[fleCentOS7 桌面]$ ls -l file*
-rw-rw-r-- 2 fle fle 191511 10月 23 22:38 file
-rw-rw-r-- 2 fle fle 191511 10月 23 22:38 file_l
lrwxrwxrwx 1 fle fle 4 10月 23 22:39 file_s - file此外如果对链接文件在进行复制
[fleCentOS7 桌面]$ cp file_s file_s1
[fleCentOS7 桌面]$ cp -l file_s file_s2
[fleCentOS7 桌面]$ cp -d file_s file_s3
[fleCentOS7 桌面]$ ls -l file_s*
lrwxrwxrwx 1 fle fle 4 10月 23 22:39 file_s - file
-rw-rw-r-- 1 fle fle 191511 10月 23 22:42 file_s1
-rw-rw-r-- 3 fle fle 191511 10月 23 22:38 file_s2
lrwxrwxrwx 1 fle fle 4 10月 23 22:43 file_s3 - file如果要复制的是链接文件那么如果希望复制的是链接文件本身那就要使用-d选项了。
1.7 rm
删除文件/目录
[fleCentOS7 桌面]$ ls
dir familyOfZhu file_l file_s1 file_s3 test1
familyOfWang file file_s file_s2 fle.txt test1_copy
[fleCentOS7 桌面]$ rm file*
[fleCentOS7 桌面]$ ls
dir familyOfWang familyOfZhu fle.txt test1 test1_copy
[fleCentOS7 桌面]$ rm test1 test1_copy
rm: 无法删除test1: 是一个目录
rm: 无法删除test1_copy: 是一个目录
[fleCentOS7 桌面]$ rm -r test1 test1_copy
[fleCentOS7 桌面]$ ls
dir familyOfWang familyOfZhu fle.txt
[fleCentOS7 桌面]$ rm test1 test1_copy
rm: 无法删除test1: 没有那个文件或目录
rm: 无法删除test1_copy: 没有那个文件或目录
[fleCentOS7 桌面]$ rm -f test1 test1_copy
[fleCentOS7 桌面]$ ls
dir familyOfWang familyOfZhu fle.txt
[fleCentOS7 桌面]$ rm -i fle.txt
rm是否删除普通空文件 fle.txty
[fleCentOS7 桌面]$ ls
dir familyOfWang familyOfZhu1.8 mv
移动文件/目录
[fleCentOS7 桌面]$ ls
dir familyOfWang familyOfZhu fle new
[fleCentOS7 桌面]$ mv dir familyOfWang familyOfZhu fle new
[fleCentOS7 桌面]$ tree
.
└── new├── dir│ └── file├── familyOfWang│ ├── WangDamao│ ├── WangErmao│ └── WangSanmao├── familyOfZhu│ └── ZhangXiaozhu└── fle8 directories, 2 files
[fleCentOS7 桌面]$ mv new new2
[fleCentOS7 桌面]$ ls
new2要注意的是mv是没有-r选项的。
2.可执行文件路径的变量$PATH
指令ls完整文件名为 /bin/ls 这是绝对路径 那你会不会觉得很奇怪 “为什么我可以在任何地方执行/bin/ls这个指令呢 ” 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢 这是因为环境变量 PATH 的帮助所致呀
当我们在执行一个指令的时候 举例来说“ls”好了 系统会依照PATH的设置去每个PATH定义的目录下搜寻文件名为ls的可可执行文件 如果在PATH定义的目录中含有多个文件名为ls的可可执行文件 那么先搜寻到的同名指令先被执行
①不同账号的PATH是不同的
[fleCentOS7 桌面]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/fle/.local/bin:/home/fle/bin
[fleCentOS7 桌面]$ su
密码
[rootCentOS7 桌面]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/fle/.local/bin:/home/fle/bin
[rootCentOS7 桌面]# su -
上一次登录日 10月 13 23:00:31 CST 2024pts/0 上
[rootCentOS7 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binPATH是以:作为间隔的。切换时要使用su -才不会继承fle账号的一些环境变量。 ②PATH是可以修改的 从上面可以知道/bin对于root账户来说是属于PATH的。以ls为例将ls命令由/bin/ls搬移到/root/ls。由于此时PATH中没有/root所以找不到ls命令当把/root添加到PATH中就可以使用ls了。
[rootCentOS7 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[rootCentOS7 ~]# mv /bin/ls /root
[rootCentOS7 ~]# ls
bash: ls: 未找到命令...
相似命令是 lz
[rootCentOS7 ~]# PATH${PATH}:/root
[rootCentOS7 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root
[rootCentOS7 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg ls
[rootCentOS7 ~]# mv /root/ls /bin
[rootCentOS7 ~]# ls
-bash: /root/ls: 没有那个文件或目录
[rootCentOS7 ~]# exit
登出
[rootCentOS7 桌面]# su -
上一次登录日 10月 13 23:03:30 CST 2024pts/0 上
[rootCentOS7 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg3.从字符串中获取目录名称和文件名称
[fleCentOS7 桌面]$ cd new2
[fleCentOS7 new2]$ tree
.
├── dir
│ └── file
├── familyOfWang
│ ├── WangDamao
│ ├── WangErmao
│ └── WangSanmao
├── familyOfZhu
│ └── ZhangXiaozhu
└── fle7 directories, 2 files
[fleCentOS7 new2]$ basename ./dir/file
file
[fleCentOS7 new2]$ dirname ./dir/file
./dir4.文件内容读取
4.1 cat与tac tac就是将cat的顺序反过来。cat和tac并不常用因为文件内容太多时不好用。
[fleCentOS7 new2]$ touch file
[fleCentOS7 new2]$ vim file
[fleCentOS7 new2]$ cat file
11111111111
22222222222
33333333333
[fleCentOS7 new2]$ tac file
33333333333
22222222222
111111111114.2 nl 4.3 more和less
more和less都是用于显示的命令只不过可以进行分页显示。页的大小取决于终端显示窗口的大小。 more: less: more或者less最有用的功能就是用于搜索
[fleCentOS7 桌面]$ more file搜索111此时如果使用/111是找不到东西的因为more的/是往下找而除了目前显示的这一页后面已经没有111了改用less进行前向搜索
[fleCentOS7 桌面]$ less file按下回车后
4.4 head与tail 假如我想要显示 ./file 的第 4 到第 5 行呢 答 这个应该不算难 想一想 在第 4 到第 5行 那么我取前 5 行 再取后2行 所以结果就是 “ head -n 5 file | tail -n 2 ” 这样就可以得到第 4 到第 5行之间的内容了这两个指令中间有个管线 | 的符号存在 这个管线的意思是 “前面的指令所输出的讯息 请通过管线交由后续的指令继续使用”的意思。 创建file文件并写入如下内容
[fleCentOS7 桌面]$ touch file
[fleCentOS7 桌面]$ vim file
[fleCentOS7 桌面]$ head -n 5 file | tail -n 2
4
5
[fleCentOS7 桌面]$
4.5 od
对于可执行文件来说使用上面的命令直接读取内容会导致乱码这时候可以使用od命令来显示
5 使用touch来改变文件的时间
文件的时间有三种 其中最常关注的就是mtime。
[fleCentOS7 桌面]$ ll /etc/man_db.conf
-rw-r--r--. 1 root root 5171 10月 31 2018 /etc/man_db.conf
[fleCentOS7 桌面]$ ll --timeatime /etc/man_db.conf
-rw-r--r--. 1 root root 5171 10月 25 03:50 /etc/man_db.conf
[fleCentOS7 桌面]$ ll --timectime /etc/man_db.conf
-rw-r--r--. 1 root root 5171 5月 18 20:58 /etc/man_db.conf
[fleCentOS7 桌面]$ date
2024年 10月 25日 星期五 21:32:39 CSTll相当于ls -l从上面可以看到ll默认输出的时间是mtime。 6 文件的隐藏属性
chattr指令只能在Ext2/Ext3/Ext4的 Linux 传统文件系统上面完整生效 其他的文件系统可能就无法完整的支持这个指令了 例如 xfs 仅支持部份参数而已。
7.文件的搜索
7.1 指令文件的搜索
搜索指令文件ls和history的位置
[fleCentOS7 桌面]$ which ls
alias lsls --colorauto/bin/ls
[fleCentOS7 桌面]$ which which
alias whichalias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde/bin/alias/usr/bin/which
[fleCentOS7 桌面]$ which history
/usr/bin/which: no history in (/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/fle/.local/bin:/home/fle/bin)上面举了三个例子ls可以搜索到which搜索到两个结果history搜索不到。 之所以which有两个结果的原因alias表示的是命令的别名也就是说/bin/alias等价于/bin/alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde
[fleCentOS7 桌面]$ /bin/alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde ls
/bin/ls而history之所以搜索得不到是因为which命令搜索的是PATH而history是bash内置的命令所以找不到。另外which是显示找到的第一个位置加上-a选项后可以显示所有找到的位置。
[fleCentOS7 桌面]$ which -a ls
alias lsls --colorauto/bin/ls/usr/bin/ls
[fleCentOS7 桌面]$ which ls
alias lsls --colorauto/bin/ls7.2 普通文件的搜索
搜索一般的命令有find、whereis、locate。效率locate whereis find。 1whereis (2)locate (3)find