shell显示文件属性和完整路径
晚上群里有人问如何用shell显示文件属性和完整路径,这个需求和那个经典问题的列出文件完整路径的稍微有点差别,但也是两种思路:
1、find可以列出完整路径,但是无法显示属性,结合xargs使用ls -ld解决
# find $PATHNAME |xargs ls -ld
这样会把$PATH目录下所有子目录和隐藏文件都显示出来,如果包含多层子目录和N多文件,会比较慢,可以利用maxdepth限制查找目录层数:
# find $PATHNAME -maxdepth 1 |xargs ls -ls
再排除隐藏文件:
# find $PATHNAME -maxdepth 1 ! -name ".*" |xargs ls -ld
2、ls可以列出属性,但是无法显示完整路径,这时候使用awk对最后一列操作比较方便:
# ls -l|awk '{$NF="'`pwd`'/"$NF;print}'| column -t |sed '1d'
之所以sed去掉第一行是因为第一行是total信息.
可以加入到别名中,方便使用:
# alisa la='find `pwd` -maxdepth 1 ! -name ".*" |xargs ls -ld '