globモードのmvはsudoなしでは動作しません。

globモードのmvはsudoなしでは動作しません。

使っていますMySQLデータベースへUbuntuマシン。

私のものMySQLデータディレクトリには/var/lib/mysql/'というディレクトリがあるからです。データベーステストdb_test/「だから、以下にディレクトリがあります。/var/lib/mysql/すべてのテーブル情報は次の場所にあります。/var/lib/mysql/db_test/

/var/lib/mysql# ls
db_test

/var/lib/mysql# cd db_test
/var/lib/mysql/db_test# ls
cars.frm
cars.MYD
cars.MYI
customers.frm
customers.MYD
...

私が達成したいのは簡単です。 「という名前の新しいディレクトリを作成します。サポート」、そしてすべてのファイルを次に移動します。 /var/lib/mysql/db_test//var/lib/mysql/backup/ディレクトリに。だから以下のコマンドを実行しています。私のホームディレクトリのサブディレクトリ:

~/tmp$ sudo mkdir /var/lib/mysql/backup
~/tmp$ sudo mv /var/lib/mysql/db_test/* /var/lib/mysql/backup

最初のmkdirコマンドが正常に実行され、以下に「backup /」という新しいディレクトリが作成されます。/var/lib/mysql/

しかし、2番目のコマンドは失敗しました。、次のエラーメッセージが表示されます。

mv: cannot stat `/var/lib/mysql/db_test/*': No such file or directory

なぜ? ?私のdb_test/ディレクトリにテーブルファイルがたくさんありますが、/var/lib/mysql/エラーメッセージが表示されるのはなぜですか?

ポリスチレン rootユーザーだけがアクセスできることを知っています/var/lib/mysql/。これが理由ですか? (しかし私は使用しましたsudo)よくわかりません...そしてどうやって取り除きますか?

ベストアンサー1

$ sudo mv /var/lib/mysql/db_test/* /var/lib/mysql/backup

これを入力すると、ユーザーのシェルは拡張を試みます/var/lib/mysql/db_test/*。ユーザーがディレクトリへのアクセス権を持っていない場合は失敗し、置換は行われません。

したがって、mvコマンドの実行は次のようになりますsudo/var/lib/mysql/db_test/*言葉ファイル名。その名前のファイルが存在しません。

以下を試してください。

$ sudo sh -c 'mv /var/lib/mysql/db_test/* /var/lib/mysql/backup'

しかし、あなたはそうしなければなりません。本物本物データベースのバックアップにデータベースツールを使用することを検討してください。

おすすめ記事