フォルダ名が01から12までの複数のフォルダを一括圧縮(shell)

フォルダ名が01から12までの複数のフォルダを一括で圧縮するには、Linuxのシェルスクリプトを使って繰り返し処理を実行するプログラム。


#!/bin/bash

for i in {1..12}; do
  folder_name=$(printf "%02d" $i) # 2桁のゼロ埋めされたフォルダ名
  
  if [ -d "${folder_name}" ]; then
    tar -czvf "${folder_name}.tar.gz" "${folder_name}"
    echo "Compressed ${folder_name} to ${folder_name}.tar.gz"
  else
    echo "Folder ${folder_name} not found"
  fi
done

最初AIを使って、使ったものの、01の出力が1になってしまい、エラーになってしまった。

 

確認用のプログラム


#!/bin/bash

for i in {1..12}; do
    folder_name="${i}"
    echo $folder_name
    folder_name=$(printf "%02d" $i)
    echo $folder_name
done

出力結果

1

01

2

02

3

03

4

04

5

05

6

06

7

07

8

08

9

09

10

10

11

11

12

12

 

AIとは、対話しながら進めないといけないなぁと、改めて実感しました。

エラーコードを貼り付けるなり、間違いを指摘してあげると、答えがきちんと返ってきます。

コメント

タイトルとURLをコピーしました