2013-12-04 2 views
1

Вопрос: Я должен отобразить атрибуты текстовых файлов в заданном пути, как размер, разрешение, собственной, группы или все, используя (используя, если иное как меню)оболочки отображения сценариев селективные атрибутов с помощью Ls команда

.

Я не уверен, как отображать только выборочные атрибуты с помощью команды 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?

+0

пожалуйста показать некоторые пример вывода команды Ls дает размер и имя файла только. – Chandru

ответ

0

Лучший способ сделать это - использовать команду «найти».

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

Вы можете прочитать больше о форматировании здесь:

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

на участке, начинающемся с

-printf формат True; формат печати на стандартном выходе, интерпретация директив \' escapes and%. Ширины полей и префиксы могут быть , указанные как с функцией `printf 'C. В отличие от -print, -printf делает не добавляет новую строку в конце строки. Побеги и директивы : \ a Тревожный звонок.

+0

Как отображать только определенные атрибуты? – rbk

+0

Вы выбираете список атрибутов, а затем изменяете оператор печати: если вы хотите отобразить размер байта и имя файла, которое вы использовали бы: find. -maxdepth 1 -printf '% p -% b \ n' –

+0

Обратите внимание, что как 'maxdepth', так и' printf' являются расширениями стандартного 'find' и могут быть недоступны для всех систем. – chepner

Смежные вопросы