Как считать перемещенные файлы скриптом bash? - PullRequest
2 голосов
/ 06 октября 2019

Мой скрипт bash перемещает файлы скриншотов с рабочего стола во вновь созданную папку. Я хотел бы, чтобы он отображал количество файлов, перемещенных после его завершения.

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

#!/bin/bash
date=$(date +"%d-%m-%y")
mkdir SCREENS/"$date"
mv Screenshot*.png SCREENS/"$date"
#echo $? - it gives only one exit code

Ответы [ 2 ]

2 голосов
/ 06 октября 2019

Вы перемещаетесь в новый каталог, чтобы вы могли сосчитать файлы в новом каталоге.
В имени файла может быть символ новой строки, поэтому простое wc не удастся (не анализируйте ls).
Вы можете указать find написать по одной строке для каждого файла и сосчитать эти строки:

find SCREENS/"$date" -type f -exec echo x \; | wc -l
1 голос
/ 06 октября 2019

Используйте for, смотрите:

$ c=0 ; for f in *.png ; do mv "$f" destination/ && ((c++)) ; done ; echo $c
2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...