shell脚本使用ls命令显示选择性属性

时间:2013-12-04 12:42:24

标签: shell

问题:我必须在给定路径上显示文本文件的属性,例如大小,权限,自己,组或所有使用。(使用if else菜单)

我不确定如何使用ls命令仅显示选择性属性,ls -l给出了我不需要的所有内容,然后ls -sh1只给出了大小....有没有办法使用ls -l并只显示它的某些部分?

我的代码:

#!/bin/bash
echo " enter address in form : /home/rohan/../.."

read ARG

if [ -n "$ARG" ]; then
                        echo "entered path :$ARG"
                echo " files present are"
                     ls -sh1 $ARG"/"*.txt 
else
     ARG=$(pwd)
     echo "Path is :$ARG"
    echo " files present are"
             ls  -sh1 $ARG"/"*.txt 
  fi

输出:仅包含大小的文本文件列表。

所以限制ls -l命令的方法是什么?

2 个答案:

答案 0 :(得分:1)

Don't parse ls

您可以使用stat命令

stat --format="%y %n" *.txt

答案 1 :(得分:0)

更好的方法是使用'find'命令。

find . -maxdepth 1 -printf '%b\n'

您可以在此处详细了解格式:

http://linux.about.com/od/commands/l/blcmdl1_find.htm

开头的部分
  

-printf format True;标准输出上的打印格式,解释\' escapes and%'指令。场宽和精度可以是   使用`printf'C函数指定。与-print不同,-printf可以   不要在字符串的末尾添加换行符。逃脱和指令   是:\ a警钟。