shell中使用echo命令输出wget获取的网页时,却输出了当前路径下的所有文件

echo知识点之

echo /* 与 echo */ 与 echo “*/”

  • echo /* 会输出根目录下的所有文件与文件夹的名称,如下所示

admin@alike:~$ echo /*
/0 /1 /bin /boot /dev /etc /GPDroidInstaller /home /initrd.img /initrd.img.old /kdeinit5__1 /lib /lib32 /lib64 /lost+found /media /mnt /opt /package-lock.json /proc /root /run /sbin /set.options /srv /sys /tmp /usr /var /vmlinuz /vmlinuz.old
admin@alike:~$

  • echo */ 会输出当前目录下的所有文件与文件夹的名称,后面加一个/,如下所示

admin@alike:~$ echo */
Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/
admin@alike:~$

  • 之所以字体标红,是因为,echo * 才是单纯输出当前目录下的所有文件与文件夹的名称,如下所示

admin@alike:~$ echo *
Desktop Documents Downloads Music Pictures Public Templates Videos
admin@alike:~$

  • 否则会导致下面这个错误:
  • 因此可以推断出,echo */.* 会输出当前路径下的所有隐藏文件和文件夹的名称
  • 但实际上会输出

admin@alike:~$ echo */.*
Desktop/. Desktop/… Documents/. Documents/… Downloads/. Downloads/… Music/. Music/… Pictures/. Pictures/… Public/. Public/… Templates/. Templates/… Videos/. Videos/…
admin@alike:~$

  • 所以,要输出当前路径下的所有隐藏文件和文件夹的名称,需要用 echo .*来实现

admin@alike:~$ echo .*
. … .bash_history .bash_logout .bashrc .bashrc.original .cache .config .dbus .dbus-keyrings .DeepinQQ.unionfs .dmrc .gconf .gksu.lock .gnupg .gtk-bookmarks .gtkrc-2.0 .gvfs .ICEauthority .kde .local .mozilla .music_data .pki .presage .profile .python_history .viminfo .Xauthority .xfce4-session.verbose-log .xfce4-session.verbose-log.last .xinputrc .xsession-errors .xsession-errors.old
admin@alike:~$

  • 但是不要以为 echo *.123 就会把当前目录下的所有文件和文件夹的名称后面加上 .123 ,然后输出,实际上,这种情况echo就会按普通字符串输出

admin@alike:~$ echo *.123
*.123
admin@alike:~$

  • 因此,可得出,echo 后面跟合理的路径通配符时,才会输出路径下的文件和文件夹名称,比如 echo */* 会输出当前路径下的所有文件夹下的文件和文件夹名称,而不会输出当前路径下的所有文件和文件夹和所有文件夹下的文件和文件夹名称

admin@alike:~$ echo */*
Desktop/test.txt Desktop/wps-office-et.desktop Desktop/wps-office-wpp.desktop Desktop/wps-office-wps.desktop Desktop/www.baidu.com Templates/DOC 文档.doc Templates/DOCX 文档.docx Templates/PPT 演示文稿.ppt Templates/PPTX 演示文稿.pptx Templates/XLS 工作表.xls Templates/XLSX 工作表.xlsx
admin@alike:~$

  • “合理”二字标红是因为,不合理的情况还包括对于当前用户没有 r 权限的文件目录,比如 /root/Desktop

admin@alike:~$ echo /root/Desktop/*
/root/Desktop/*
admin@alike:~$

  • echo “*/” 则只会输出 */ 这一字符串

admin@alike:~$ echo “*/”
*/
admin@alike:~$

  • 因此,当打算用echo 输出字符串的时候,一定要养成用双引号引起来的好习惯~
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值