当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 关于ls的不解
帖子发表于 : 2012-05-01 10:02 
头像

注册: 2010-11-07 22:12
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
前天记得使用这个命令时
ls *.a
结果为
libpfnGen4.a libpfnNUKE.a
没有什么疑问,但是我在拷贝的时候
cp `ls *.a` ~/
却出现了无法找到目标的错误
然后,我看了一下,在当前目录下,确实没有“libpfnGen4.a libpfnNUKE.a”这两个文件(也不是隐藏文件,确认过了,就是不存在)

但是为什么“ls *.a”能显示呢,很是不解 :em06


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-01 12:54 
头像

注册: 2008-07-24 11:33
帖子: 4793
地址: 郑州
送出感谢: 4
接收感谢: 92
代码:
cp `/bin/ls *.a` ~/

如何?

错误的话贴出来看看。


_________________
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-01 13:17 

注册: 2012-05-01 13:13
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
这样用法需要使用管道命令,查一下就知道了。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-01 14:55 
头像

注册: 2011-04-03 10:01
帖子: 981
地址: 帝都
系统: Ubuntu 12.XX
送出感谢: 28
接收感谢: 18
刚才试了一下,用管道是不行的
代码:
cp $(ls *.a) ~/

和 cuihao 的办法是一样的 :em04

有点糊涂你的意思了,既然 ls *.a 能显示,那为什么又不存在呢……
代码:
ls |grep .a

和 ls *.a 的输出结果一样吗?


_________________
Ubuntu技巧汇总http://wiki.ubuntu.org.cn/UbuntuSkills --你遇到的各种问题可能已经在里面了
我的技术博客http://www.cherrot.com
Code tells you how, comments should tell you why.


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-01 15:11 

注册: 2007-08-02 20:29
帖子: 21303
系统: 窓辺とうこ
送出感谢: 0 次
接收感谢: 22
代码:
$ ls *.a
1.a  2.a

$ ls 0/

$ cp `ls *.a` 0

$ ls 0/
1.a  2.a


我试了可以


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-01 19:14 
头像

注册: 2010-11-07 22:12
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
机器现在不在手里,明天直接贴图吧


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-01 21:20 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
复制个文件搞那么麻烦!
代码:
cp *.a ~/


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-04 8:22 
头像

注册: 2010-11-07 22:12
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
不好意思,最近两天搬家,晚了点,直接上图

为啥
"ls *a"

“ls -al | grep a$"

结果不一样?


附件:
screen.png
screen.png [ 100.8 KiB | 被浏览 1646 次 ]

页首
 用户资料  
 
9 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-04 20:13 
头像

注册: 2011-02-11 21:10
帖子: 46
送出感谢: 0 次
接收感谢: 2
我的”ls *a“试验结果截图,10.04server机器。也很奇怪 :em01
图片


附件:
文件注释: 我的”ls *a“试验结果截图,10.04server机器。
ls_start_a.PNG
ls_start_a.PNG [ 86.84 KiB | 被浏览 1539 次 ]

页首
 用户资料  
 
10 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-04 21:53 
头像

注册: 2011-04-03 10:01
帖子: 981
地址: 帝都
系统: Ubuntu 12.XX
送出感谢: 28
接收感谢: 18
引用:
LS两位,这几个文件是从哪弄得呢?

我能想到的原因就是这三个文件你们没有写权限
测试一下
代码:
[ -w FILE_NAME ] && echo write || echo oops


刚才我试了一下,去除文件的写权限时,复制确实会导致这个错误,有读权限也白搭


重做了实验,前面说的完全不对


_________________
Ubuntu技巧汇总http://wiki.ubuntu.org.cn/UbuntuSkills --你遇到的各种问题可能已经在里面了
我的技术博客http://www.cherrot.com
Code tells you how, comments should tell you why.


最后由 Cherrot 编辑于 2012-05-04 22:26,总共编辑了 1 次

页首
 用户资料  
 
11 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-04 22:09 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
什么乱七八遭的!


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-04 22:24 
头像

注册: 2006-09-02 20:42
帖子: 579
地址: 东海明珠
送出感谢: 1
接收感谢: 2
我擦,
ls *a的意思是列出当前目录下以a字母结尾的目录下的文件。你那个3个libXXX.a根本不是当前目录下,而是在当前目录下的某个以a字母结尾的目录下。


_________________
Life is like a box of chocolates, you never know what you're going to get.


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-04 22:28 
头像

注册: 2006-09-02 20:42
帖子: 579
地址: 东海明珠
送出感谢: 1
接收感谢: 2
楼主,我已经看到了,那三个libXXX.a文件是在那个lib.a文件夹下的。


_________________
Life is like a box of chocolates, you never know what you're going to get.


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-04 23:05 
头像

注册: 2011-02-11 21:10
帖子: 46
送出感谢: 0 次
接收感谢: 2
我知道楼主的问题所在了。
楼主实际目录结构应该如下:
代码:
Last_exit_code=0 2012年 05月 04日 星期五 22:39:31 CST hoxily@ubuntulucid:~/test$ ls -Rla
.:
total 24
drwxr-xr-x  6 hoxily hoxily 4096 2012-05-04 22:34 .
drwxr-xr-x 19 hoxily hoxily 4096 2012-05-04 19:48 ..
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 22:34 lib.a
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 19:50 .macromedia
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 19:50 .mozilla
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 22:39 trash

./lib.a:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 22:34 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..
-rwxr-xr-x 1 hoxily hoxily    0 2012-05-04 19:49 libpfnGEN2.a
-rwxr-xr-x 1 hoxily hoxily    0 2012-05-04 19:49 libpfnGEN4.a
-rwxr-xr-x 1 hoxily hoxily    0 2012-05-04 19:49 libpfnNUKE.a

./.macromedia:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 19:50 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..

./.mozilla:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 19:50 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..

./trash:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 22:39 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..


关于'ls *a'和'ls -al | grep a$'为什么不一样的解释:
首先'ls *a'命令中的 * 符号在 bash 中有特殊含义,会被 bash 根据当前目录内容,优先扩展成 lib.a 。命令也就成了'ls lib.a', 意思就是查看当前目录下 lib.a 目录的文件目录列表。所以楼主看到了那三个 .a 文件。
关键在于 bash 对 *a 的扩展并不会包括 . 开头的文件或者目录。因此楼主用'ls *a'看不到那些以 . 开头的目录的列表信息,ls程序仅仅显示了 lib.a 目录的列表。

然后,对于'ls -al | grep a$'命令,它被 bash 忠实地执行,准确地传递了'-al'参数给 ls 命令,'a$'传给了 grep 命令。因此楼主成功的用grep命令筛选出了'ls -al'给出的当前目录下所有以a字符结尾的文件或者目录。

大概就是这样。大家一起来学Bash吧 :em01
附我模拟的目录tar包。


附件:
文件注释: 我模拟的目录tar包
ls_problem_directory_tree.tar.gz [271 Bytes]
被下载 28 次
页首
 用户资料  
 
15 楼 
 文章标题 : Re: 关于ls的不解
帖子发表于 : 2012-05-07 13:21 
头像

注册: 2010-11-07 22:12
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
hoxily 写道:
我知道楼主的问题所在了。
楼主实际目录结构应该如下:
代码:
Last_exit_code=0 2012年 05月 04日 星期五 22:39:31 CST hoxily@ubuntulucid:~/test$ ls -Rla
.:
total 24
drwxr-xr-x  6 hoxily hoxily 4096 2012-05-04 22:34 .
drwxr-xr-x 19 hoxily hoxily 4096 2012-05-04 19:48 ..
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 22:34 lib.a
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 19:50 .macromedia
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 19:50 .mozilla
drwxr-xr-x  2 hoxily hoxily 4096 2012-05-04 22:39 trash

./lib.a:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 22:34 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..
-rwxr-xr-x 1 hoxily hoxily    0 2012-05-04 19:49 libpfnGEN2.a
-rwxr-xr-x 1 hoxily hoxily    0 2012-05-04 19:49 libpfnGEN4.a
-rwxr-xr-x 1 hoxily hoxily    0 2012-05-04 19:49 libpfnNUKE.a

./.macromedia:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 19:50 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..

./.mozilla:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 19:50 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..

./trash:
total 8
drwxr-xr-x 2 hoxily hoxily 4096 2012-05-04 22:39 .
drwxr-xr-x 6 hoxily hoxily 4096 2012-05-04 22:34 ..


关于'ls *a'和'ls -al | grep a$'为什么不一样的解释:
首先'ls *a'命令中的 * 符号在 bash 中有特殊含义,会被 bash 根据当前目录内容,优先扩展成 lib.a 。命令也就成了'ls lib.a', 意思就是查看当前目录下 lib.a 目录的文件目录列表。所以楼主看到了那三个 .a 文件。
关键在于 bash 对 *a 的扩展并不会包括 . 开头的文件或者目录。因此楼主用'ls *a'看不到那些以 . 开头的目录的列表信息,ls程序仅仅显示了 lib.a 目录的列表。

然后,对于'ls -al | grep a$'命令,它被 bash 忠实地执行,准确地传递了'-al'参数给 ls 命令,'a$'传给了 grep 命令。因此楼主成功的用grep命令筛选出了'ls -al'给出的当前目录下所有以a字符结尾的文件或者目录。

大概就是这样。大家一起来学Bash吧 :em01
附我模拟的目录tar包。


正解呀,牛X

(ps.怎么送感谢呀,不会操作~,只有精神上表示一下了)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译