![間違ったスクリプトを実行すると、移動したフォルダが消えますが、どこで? [閉鎖]](https://linux33.com/image/123139/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E7%A7%BB%E5%8B%95%E3%81%97%E3%81%9F%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%8C%E6%B6%88%E3%81%88%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%81%A9%E3%81%93%E3%81%A7%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
ファイルの移動中に誤って誤ったbashスクリプトを実行しました。 「Lisa」で始まるすべてのフォルダは消えて移動されません。以下はエラースクリプトのおおよその内容です。
folder_path = "/media/hdd/folder/"
Lisa = "/media/hdd/folder/folder1/Lisa/"
mv $folder_path Lisa* $Lisa
Lisaで始まるフォルダがすべて消えたのに確認してみると/media/hdd/folder/folder1/Lisa/
そこにはありません。私はそれらが削除されたと仮定していますが、df -h
間違ったスクリプトを実行する前に同じ空き領域がまだ報告されています。
何の役にも立ちませんlsof
。フォルダが削除されましたか?どんな助けでも大変感謝します。
答え1
構文にはいくつかの問題があり、いくつかの問題が発生します。 Bashでは(このスクリプトをそのように実行しているかどうかはわかりませんが)、オペレータは=
周囲にスペースがある場合は割り当てを行いません。つまり、 にx=y
割り当て、とを比較します。空白があるので、両方が設定されていないとします(割り当てが行われていないため)。y
x
x = y
x
y
folder_path
Lisa
その場合は、単に実行して空の文字列にmv
展開してください。したがって、デフォルトでは次のように実行します。$folder_path
$Lisa
mv Lisa*
これは、現在の作業ディレクトリで「Lisa」で始まるすべてのエントリに展開されます。内容に応じて、ファイルの上書き、移動、名前変更など、さまざまな操作を実行できます。