data*
選択したファイルの圧縮zipファイルが50 MBを超えないようにするすべてのファイルを選択し、日付ごとに最新のファイルを選択する必要があります。 Bashスクリプトでこれをどのように達成できますか?
答え1
あなたは次のようなものが欲しいでしょう
stat -c "%Y %n" data* | sort -rn | cut -d" " -f2- |
while IFS= read -r file; do
if ! [[ -f my.zip ]]; then
zip my.zip "$file"
elif (( $(stat -c %s my.zip) < 50000000 )); then
zip my.zip "$file"
else
echo "zip file full"
break
fi
done
最初の行は、現在のディレクトリ内のファイルを変更時刻に基づいて最新の項目から古い項目の順に並べ替えます。