2015-01-07 4 views
0
FILES="$DIRECTORY"/* 
for f in $FILES 
do 
echo "file $f: " 
#ls "$f" 
done 

Я пытаюсь просмотреть файл, чтобы каждый файл отображался отдельно. напримерПроцитировать все файлы в каталоге?

first file 
name 
size 
date edited 

вариант для перехода к следующему файлу.

second file 
name 
size 
date edited 

и так далее, на данный момент, хотя это просто отображение этого:

file/dir/file1 
file/dir/file2 

редактировать:

правильно, я уже посмотрел на это все больше и теперь это.

total=$(find $DIRECTORY -type f | wc -l) 
f="1" 
while [ $f -lt $total ] 
do 
echo "file $f: " 
stat %n $f 
f=$[$f+1] 
done 

Что нужно сделать, это получить общее количество файлов в каталоге, а затем пронести их через них. Проблема в том, что я не знаю, как получить информацию о файлах для отображения на них.

file 0: 
stat: cannot stat ‘%n’: No such file or directory 
stat: cannot stat ‘0’: No such file or directory 
file 1: 
stat: cannot stat ‘%n’: No such file or directory 
stat: cannot stat ‘1’: No such file or directory 
+1

Посмотрите в 'человека stat' – anubhava

+0

' $ [...] 'является устаревшим; вместо этого используйте '$ ((...))'. – chepner

ответ

0

Если вы просто хотите, имя, размер и время изменения, попробуйте:

find "$DIRECTORY" -maxdepth 1 -type f -exec sh -c 'stat -c "%n %s %y" "$0"' {} \; 
+0

Или, если 'find' поддерживает' -printf' со всеми преимуществами GNU: 'find '$ DIRECTORY' -maxdepth 1-type f -printf '% f% s% t \ n''. –

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