誤って/*の一部を/some/directoryにコピーしました。間違いをどのように修正する必要がありますか?

誤って/*の一部を/some/directoryにコピーしました。間違いをどのように修正する必要がありますか?

リモートLinuxサーバーで愚かなことをしました。

  1. 私の作業ディレクトリは/some/directory
  2. 私は走ったfor dir in $(ls | grep "a_pattern"); do mv $d/* ./my_subdirectory; done
  3. これで、次の項目が/some/directory/my_subdirectory含まれており、bin boot dev絶対homeにあってはならない項目が含まれています。

#2がどれほど愚かであるかを自由に指摘してください。私のエラーを正しく理解すること$dは空です$dir。したがって、デフォルトではyesコマンドを実行しますmv /* ./my_subdirectory

私がやったことに気づいたら、ctrl-c ctrl-cを押してコマンドが完了する前に停止しました。

私の質問は2つの部分で構成されています。まず、この問題を解決するにはどうすればよいですか?第二に、私のコマンドは実際に動作しますか?移動するもの/、または単にコピーしますか?

私はそれを実行し、それが何か動くと期待していましたが、何も欠けているのをmv見ませんでした。ここで明確でない場合は教えてください。たとえば、bash、cat、mount、および mkdir が含まれますが、これらのプログラムは移動されたのではなくコピーされたかのようにまだ存在します。なぜそんなことですか?以下のすべてのアイテムを安全に削除できますか?それともひどい間違いになるのでしょうか?./my_subdirectory//some/directory/my_subdirectory/bin/bin/some/directory/my_subdirectory


コメントでtadの提案によると、以下はいくつかの結果ですfind ./my_subdirectory -type f

./my_subdirectory/bin/umount
./my_subdirectory/bin/date
./my_subdirectory/bin/sort
./my_subdirectory/bin/red
./my_subdirectory/bin/dumpkeys
./my_subdirectory/bin/sleep
./my_subdirectory/bin/readlink
./my_subdirectory/bin/mv
...
./my_subdirectory/etc/security/pam_env.conf
./my_subdirectory/etc/security/chroot.conf
./my_subdirectory/etc/security/access.conf
./my_subdirectory/etc/security/namespace.init
./my_subdirectory/etc/security/group.conf
./my_subdirectory/etc/security/console.handlers

確認してみると、ファイルはまだ下と/etc下にあります/bin。実行するとdiff ./my_subdirectory/etc /etc共通のサブディレクトリが表示されますが、そのうちのいくつかは唯一のものですが、/etcそれらのどれも./my_subdirectory/etc。だから物が移動されたのではなくコピーされたように見えます。 sudoでコマンドを実行しない場合、mvこれは予想されますか?

ベストアンサー1

このコマンドをrootとして実行しないと仮定すると、データは単にコピーされたと想定されます。すぐにわかる方法は、diffを実行してディレクトリを比較することです。

おすすめ記事