Chinaunix
标题:
如何使用ls命令输出的文件带上绝对路径?
[打印本页]
作者:
zwfnet
时间:
2014-05-29 11:37
标题:
如何使用ls命令输出的文件带上绝对路径?
各位帮忙看一下怎么做
需求: 我要查看一个五层目录 /1/11/[0-10]/file file的文件大小,但是file是分布在0-10个文件夹里面,我想用while做循环的时候发下ls不能带上绝对路径。
例如:
ls /1/11/0/file1
/1/11/1/file1
/1/11/2/file1
ls /1/11/[0-10]/file/ >> a
ls出来的a的文件里只能是:
/1/11/0 :
file1
file2
file3
.......
/1/11/1 :
file1
file2
file3
......
.
.
/1/11/10 :
file1
file2
file3
我需要的效果是a文件里内容为:
/1/11/0/file1
/1/11/1/file1
/1/11/2/file1
......
/1/11/10/file1
好像可以用awk实现,但是不太熟悉,还请高手解答,谢谢!
BS:我最终的目的是想查看file文件的大小,先ls出所有file的目录,然后用while来du一下各个file再排序,现在是卡在了[0-10]这个多个文件夹里,当然那,分步做是可以达到目的,但是请高手看一下有没有更好的办法解决?
作者:
todayhero
时间:
2014-05-29 11:48
@zwfnet
你是需要这样的功能吗?
[root@svn252 ~]# find /etc/ -name "*" | xargs du -h
16K /etc/selinux/targeted/contexts/users
184K /etc/selinux/targeted/contexts/files
372K /etc/selinux/targeted/contexts
1.9M /etc/selinux/targeted/policy
8.0K /etc/selinux/targeted/modules/previous/modules
16K /etc/selinux/targeted/modules/previous
4.7M /etc/selinux/targeted/modules/active/modules
40M /etc/selinux/targeted/modules/active
40M /etc/selinux/targeted/modules
43M /etc/selinux/targeted
43M /etc/selinux
128K /etc/sgml
复制代码
作者:
zwfnet
时间:
2014-05-29 12:47
回复
2#
todayhero
或者说 我只需要目录
/etc/selinux/targeted/
到这一级就好了,find命令的话,会把目录下的所有文件都find出来,这样数量级太大了,因为我的file下面还有很多个文件,find就做了很多无用功,且效率很低。
还能用别的办法吗?
作者:
非凡公子
时间:
2014-05-29 13:14
ls -R /etc/selinux|grep \/
是你想要的么?
作者:
Shell_HAT
时间:
2014-05-29 13:16
回复
3#
zwfnet
find /etc/
-maxdepth 1
-name "*" | xargs du -h
作者:
zwfnet
时间:
2014-05-29 17:38
回复
4#
非凡公子
这个貌似执行不了!返回为空,grep -v貌似这个反检索是什么意思?
作者:
zwfnet
时间:
2014-05-29 17:44
回复
5#
Shell_HAT
GOOD,大侠这个命令很好用,哈哈,thanks,这个可以很轻松的解决我的问题,我用了另外一种相当复杂的脚本来做,现在一句话就可以了。非常感谢!!!
作者:
用户名注册后不能更改
时间:
2014-05-30 03:02
回复
6#
zwfnet
\/是\和/,不是V……
作者:
用户名注册后不能更改
时间:
2014-05-30 03:03
回复
2#
todayhero
-name "*"
这个参数是什么意思?
作者:
todayhero
时间:
2014-05-30 04:38
[@]用户名注册后不能更改[/@]
任意了。
作者:
blackold
时间:
2014-05-30 08:14
搞得太复杂了吧。
ls /etc/selinux/targeted/
复制代码
作者:
zwfnet
时间:
2014-05-30 15:03
回复
8#
用户名注册后不能更改
还是楼上的那个find命令好用些,这个-R 会把下面的目录也一并显示出来,当然用你这个命令搜出来的结果也可以用awk再去掉不需要的部分,但是貌似效率就不那么高了。谢谢大哥。
作者:
zwfnet
时间:
2014-06-03 10:49
回复
2#
todayhero
可以用前面这部分,|xarg du -h这个会把目录下所有的文件大小单独列出来,我只是想要macdeth -1这个目录的大小即可,du -s 或者du -sh 我都试过,发现du出来结果的大小跟实际大小会不一样,所以,我只能find出一个文件,然后再用while循环去du -s 这个目录得出的结果才比较准确。
作者:
huang6894
时间:
2014-06-03 17:01
本帖最后由 huang6894 于 2014-06-03 17:01 编辑
for i in `ls /1/11/[0-10]/file1`
do
echo `readlink -f $i`
done
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2