Linux mvコマンドはデータを不明な場所に移動しましたか?


11

私は誤ってこのコマンドをSSHで実行しました。

mv /var/www/vhosts/website/httpdocs/magento/*

これで、magento dir内のすべてのデータがなくなりました。誰がどこに移動したか知っていますか?

ありがとう!


データがどのディレクトリに行き、Bashを使用しているかを自動的に判断するには、次の操作を行いますa=( /var/www/vhosts/website/httpdocs/magento/* ); echo "${a[${#a[@]}-1]}"。Bashにない場合、これは動作するはずですprintf '%s\n' /var/www/vhosts/website/httpdocs/magento/* | tail -1。そうでなければ、アルファベット順に最後のディレクトリにある可能性が非常に高いです。できた
-gniourf_gniourf

回答:


20

このディレクトリのアルファベット順に最後のエントリがディレクトリ自体である場合、それらはそこにあります。

あなたがファイルを持っていると仮定しabかつcディレクトリd。この場合、

mv /var/www/vhosts/website/httpdocs/magento/*

に展開する

mv /var/www/vhosts/website/httpdocs/magento/a /var/www/vhosts/website/httpdocs/magento/b /var/www/vhosts/website/httpdocs/magento/c /var/www/vhosts/website/httpdocs/magento/d

これは、すべてをに移動するコマンドdです。何かあればそこを見てください。

dディレクトリでなかったら、mvそれについて文句を言うべきだった。


1
+1:/ var / www / vhosts / website / httpdocs / magento / *ディレクトリのサブディレクトリの下を確認します。ヒント:サブディレクトリはまだ magento dirにあるため、他のほとんどすべてがその下にあるはずなので簡単です。したがって、残りのディレクトリは1つだけです(「。」で始まるものはカウントしません)。そのサブディレクトリと「mv * ..」を入力します。これは可能性があり、あなたが戻ってそれらを配置する必要がありますので、しかし、そのディレクトリの下に、以前に正しくなかったものを移動します。+ magento / *のファイルと同じ名前のファイルはすべて上書きされます(「mv」が「mv -i」にエイリアスされていない場合)
Olivier Dulac

2
巧妙なトリックmv *mkdir zzz; mv *現在のディレクトリのすべてのコンテンツをディレクトリzzzに移動します。zzzの後に辞書式にソートするファイルがないことを確認してください。

2

glglglの返信を延長するには:

Unixライクなオペレーティングシステムでのコマンドラインワイルドカード拡張は、シェルによって実行されます。Linuxでのほとんどの場合、そうなりますbash。そのマニュアルページには、ワイルドカード展開がアルファベット順にソートされることが明示的に記載されています。同じことは、Bourne互換シェルのほとんどで有効です。


おそらくほとんどだけでなく、すべてです。そうでない場合、互換性が不足します。
-glglgl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.