zshシェルスクリプトを使用してフォトマネージャを作成しようとしています。ただし、各デフォルトディレクトリに日付に基づいてサブディレクトリを作成する際に問題があります。現在のスクリプトは私が作成したフォルダから始まり、パラメータを使用します(編集するにはファイルが必要なので、最初のCDは$ 1です)。次に、私の問題とは関係のないいくつかの名前を変更しました。次に、各日付のディレクトリを作成し、写真を正しいディレクトリに移動します。
問題は、各日付フォルダを繰り返して2つの新しいサブディレクトリ(jpgとraw)を作成したいということです。しかし、コードを実行すると、そのファイルやディレクトリがないというエラーが発生します。
これは私の現在のスクリプトです。
#!/bin/zsh.
cd $1
for i in *.JPG;
do
mv $i $(basename $i .JPG).jpg;
done
for i in *;
do
d=$(date -r "$i" +%d-%m-%Y)
mkdir -p "$d"
mv -- "$i" "$d/";
done
for d in *;
do
cd $d
for i in *.jpg;
do
mkdir -p "jpg"
mv -- "$i" "jpg";
done
for i in *.NEF;
do
mkdir -p "raw"
mv -- "$i" "raw";
done
done
私がどこで間違っているのか知っている人がいるなら、何が間違っているのかわかりません。
間違い
➜ files sh test2.sh sdcard1
test2.sh: line 16: cd: 05-03-2022: No such file or directory
mv: rename *.jpg to jpg/*.jpg: No such file or directory
mv: rename *.NEF to raw/*.NEF: No such file or directory
test2.sh: line 16: cd: 23-10-2021: No such file or directory
mv: rename *.jpg to jpg/*.jpg: No such file or directory
mv: rename *.NEF to raw/*.NEF: No such file or directory
ベストアンサー1
for d in *;
do
cd $d
私が知る限り、これはバグです。ディレクトリにループを作成しましたd
。あなたはCDを入力しましたが、$d
ループは終了しません。
done
cd ..
done
したがって、2番目の反復で$d
もまだ最初のサブディレクトリにあり、もちろん2番目の$d
サブディレクトリは含まれません。
ちなみに、daysを追加して注文します%d-%m-%Y
。もちろん自由にできますが、年ごとに並べ替えると、カタログがよりきれいに整理されることがわかります%Y-%m-%d
。