Googleで特殊文字を検索するのは難しく、ここに投稿してください。
最近(ルートとして)実行したが、mv /tmp/folder/* /*
実行しようとしたときにmv /tmp/folder/* ./
完全に間違っていました!
何かが故障しました!多くのファイルが難読化され、奇妙な場所に配置されており、通常のUNIXコマンド(ls、dir、catなど)が機能しないため、ログアウトするとsshを介して再度ログインできなくなります。メッセージが表示されますが、古いパスワードを受け付けません。
実行すると、ls /*
ファイルが..に移動(またはコピー?)される/
平行線を描こうとすると、非常に奇妙なことが発生し、一体何が起こっているのか疑問に思います。mv
/
追加情報:/tmp/folderのファイルはWindowsコンピュータから送信され、名前は(#).txtです。ここで (#) は最大 2 桁の数字で、ファイルと角かっこの間にスペースがあります。約40個のテキストファイルがあります。
答え1
このmv
コマンドは、ファイルまたはディレクトリである可能性があるパラメーターのリストを使用します。最後の引数がディレクトリの場合、他のすべての引数はそのディレクトリに移動されます。
あなたの場合のmv /tmp/folder/* /*
拡張子はmv <the list of files in /tmp/folder> <the list of files in />
。/tmp/folders/
/
/*
/var
答え2
あなたが想像する主張はmv
間違っていた。マニュアルページから:
SYNOPSIS
mv [OPTION]... SOURCE... DIRECTORY
mv
多くのSOURCE
パラメータが必要ですが、ターゲットは1つだけ必要ですDIRECTORY
。mv
ファイルを複数の宛先に移動できません。それ以外の場合はコピーする必要があります。 (あなたが言ったように)/*
のすべてのディレクトリが解析されるので、/
最後のディレクトリを除くすべてのディレクトリがリストに追加されるので、すべてのディレクトリをSOURCE
コマンドラインにリストされている最後のディレクトリに移動します。
LiveCDから起動してドライブをマウントすると、損傷を取り消すことができます。ルートにはただ1つのディレクトリだけが残り(おそらく/var
)、ルートに存在する必要があるすべてのディレクトリを他の場所に移動できます。礼拝規則
答え3
コマンドが正確に何をしているかを確認するには、mv
シェルがすべてのワイルドカードを展開し、結果のコマンドを印刷するようにコマンドの前に追加して確認できます。たとえば、次のようになります。echo
$ echo mv /tmp/folder/* /*
$ echo mv /tmp/* /*
mv /tmp/launch-4TgsLB /tmp/skl /bin /dev /etc /home /lost+found /mnt /net /opt /private /sbin /tmp /usr /var
したがって、デフォルトでは、ファイルはルートシステムの最後のフォルダ(たとえば/var
。
もっと読む:mv *は何をしますか?