Перечислите размер каждого файла в текущем рабочем каталоге

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

for $filename in "/etc/passwd";$filesize=$(stat --format=%s "$filename");echo $filesize.

Но я получаю это сообщение об ошибке

-bash: syntax error near unexpected token `$filesize=$(stat --format=%s "$filename")'
0
задан 15 March 2020 в 00:09

1 ответ

В Вашем сценарии существует много ошибок

  1. переменное присвоение var=value нет $var=value

  2. a for циклу нужен a do и a done

Так

for filename in "/etc/passwd"; do 
  filesize=$(stat --format=%s "$filename");
  echo $filesize
done

Но отметьте это "/etc/passwd" не "текущий рабочий каталог" - это - единственный файл. Если бы Вы действительно хотите циклично выполниться по файлам в текущем каталоге, это было бы

for filename in * . . .

Обратите внимание, что, если количество файлов не является очень большим, Вы могли опустить цикл в целом и просто сделать

stat --format=%s *

Кроме того,

find . -maxdepth 1 -printf '%s\n'
1
ответ дан 15 March 2020 в 07:39

Другие вопросы по тегам:

Похожие вопросы: