Как я могу выполнить определенную команду для каждого файла/папки в текущей папке?
Я начал с этого как базовый script, но похоже, что он работает только при использовании временных файлов, и мне не очень нравится ideea. Есть ли другой способ?
FOLDER=".";
DIRS=`ls -1 "$FOLDER">/tmp/DIRS`;
echo >"/tmp/DIRS1";
while read line ; do
SIZE=`du "$FOLDER$line"`;
echo $SIZE>>"/tmp/DIRS1";
done < "/tmp/DIRS";
Для всех, кого это интересует, я хотел составить список папок, отсортированных по их размеру. Вот окончательный результат
FOLDER="$1";
for f in $FOLDER/*; do
du -sb "$f";
done | sort -n | sed "s#^[0-9]*##" | sed "s#^[^\./]*##" | xargs -L 1 du -sh | sed "s|$FOLDER||";
что приводит к du -sb $FOLDER/* | sort -n | sed "s#^[0-9]*##" | sed "s#^[^\./]*##" | xargs -L 1 du -sh | sed "s|$FOLDER||";