いくつかのテスト中にbastスクリプトを実行しました。
for file in *; do
mv -v "$file" "$file#_*"
done
または同様の条項。計画はディレクトリ名からプレフィックスを削除することでしたが、誤って私が作成したテストディレクトリではなくホームディレクトリで実行しました...
私が理解したように、ディレクトリ内のすべてのファイルは「安全」でなければなりませんが(削除されていない状態で)、今はディレクトリ構造を介してそのファイルにアクセスできません。
これらのファイルを回復する方法はありますか?
よろしくお願いします。
修正する私の記憶が間違っているようです。ループのコマンドはfor
実際にありましたecho mv ...
。とにかく〜のすべてのディレクトリとファイルは私のビデオディレクトリに移動されましたが、破損していないようです。
答え1
そこで何をしたのか完全にはわかりませんが、質問のコマンドが実行したコマンドであれば、それを元に戻すことができるはずです。
for f in *
do echo mv -v "$f" "${f%"#_*"}"
done
echo
うまくいくと確信するまで、このコマンドから何も削除しないでください。しかし、うまくいくと思う理由を説明するために私がしたことは次のとおりです。
for f in $(seq 100)
do echo $f > file$f
done
file1
たとえば、これにより100個のファイルが残り、file100
各ファイルにはその番号が含まれます。
$ cat file100
100
そうですね。それから私はあなたがしたことをしました。
for f in *
do mv -v "$f" "$f#_*"
done
file1#_*
- 同じファイルがたくさんありますfile100#_*
。その後、最初のコードブロックに貼り付けた操作を実行しましたが、エコーはありませんでした。
$ cat file100
100