こんにちは。 .kshスクリプトには次の行があります。
for file in $fileDirectory/*.$yesterdayDate
do
mv *.$yesterdayDate "$fileDirectory/$yesterdayDate"
done
ただし、これを行うと、次のエラーが発生します。
mv: cannot stat ‘*.20200607’: No such file or directory
mv: cannot stat ‘*.20200607’: No such file or directory
mv: cannot stat ‘*.20200607’: No such file or directory
私が間違っていることを知っている人はいますか?
答え1
*.20200607
現在、ディレクトリに一致するファイルはありません。これはまったく驚くべきことではないかもしれません。
その変数の周りにループを構築file
しますが、絶対に使用しないでください。
for file in "$fileDirectory"/*."$yesterdayDate"; do
mv "$file" "$fileDirectory/$yesterdayDate"
done
しかし、なぜそれだけではないのですか?
mv "$fileDirectory"/*."$yesterdayDate" "$fileDirectory/$yesterdayDate"
?ファイルが多すぎてmv
通話できませんか?おそらくそうではありません。
答え2
使用する必要があります
mv $file "$fileDirectory/$yesterdayDate"
for ループ内
または
次のコマンドを使用してこれを実行できますfind
。
find $fileDirectory -name \*.$yesterdayDate -type f -exec mv {} $fileDirectory/$yesterdayDate \;