将可执行文件移动到 $PATH 中的另一个文件夹后找不到可执行文件
Cannot find a executable file after I move it to another folder in $PATH
关于 linux 的小实验。
root@ubuntu:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
root@ubuntu:/# which ls
/bin/ls
root@ubuntu:/# mv /bin/ls /root
root@ubuntu:/# ls
bash: /bin/ls: No such file or directory
root@ubuntu:/# export PATH=$PATH:/root
root@ubuntu:/# ls
bin boot cdrom dev etc home ...
root@ubuntu:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/root
root@ubuntu:/# mv /root/ls /bin/
root@ubuntu:/# ls
bash: /root/ls: No such file or directory
我刚刚将 /bin/ls 移动到 /root,然后我将 /root 添加到 $PATH,现在 ls 是可执行的。
当我再次将/root/ls移动到/bin/时,'ls'无法执行,系统找不到文件'ls'。那么问题出在哪里呢?
删除 bash 可执行文件的缓存路径。
hash -d ls
关于 linux 的小实验。
root@ubuntu:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
root@ubuntu:/# which ls
/bin/ls
root@ubuntu:/# mv /bin/ls /root
root@ubuntu:/# ls
bash: /bin/ls: No such file or directory
root@ubuntu:/# export PATH=$PATH:/root
root@ubuntu:/# ls
bin boot cdrom dev etc home ...
root@ubuntu:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/root
root@ubuntu:/# mv /root/ls /bin/
root@ubuntu:/# ls
bash: /root/ls: No such file or directory
我刚刚将 /bin/ls 移动到 /root,然后我将 /root 添加到 $PATH,现在 ls 是可执行的。
当我再次将/root/ls移动到/bin/时,'ls'无法执行,系统找不到文件'ls'。那么问题出在哪里呢?
删除 bash 可执行文件的缓存路径。
hash -d ls