
何度も聞かれていることは承知していますが、具体的に何をしようとしているのかの答えが見つかりません。
ディレクトリ構造は次のとおりです。
Main Folder1
|
|-Subfolder 1
|-Subfolder 2 HasAReallyLongName
|---files
|-Subfolder 3-1000
Main Folder2
|
|-Subfolder 2 HasAReallyLongName
|---files
- Subfolder2 とそのファイルを別のディレクトリに移動してみたいと思います。
- 十分なスペースがないので、何かをコピーして削除したくありません。
mv /Main/Sub2/* /Main2/
そうすると、すべてが/Main2
サブディレクトリではなくフォルダ内に置かれるので、そうしたくありません。mkdir /Main2/...
名前が非常に長い(主にタイムスタンプ)ので、手動で入力したくない(おそらく台無しになる)ので、やりたくないです。- 私の知る限り、
rsync
ファイルもコピーするので、それが機能するかどうかはわかりません。
ご提案や他のツールがあれば、ぜひ教えてください!
答え1
これはまったく簡単です。
mv /Main1/Sub2 /Main2
これにより、元のすべての内容を含むディレクトリが作成され/Main2/Sub2
、ディレクトリが削除されます/Main1/Sub2
。完全な名前を入力したくない場合は、glob を使用できます。名前の入力を止めて、*
ディレクトリ名をディレクトリ内の他のすべてのものと区別するのに十分な文字を入力したら、 で終了します (注意してください)。
mv /Main/Sub* /Main2
期待どおりに動作しない原因として考えられる問題:
/Main2
内にと同じ名前のディレクトリが既に存在します。これにより、 と同様に、既存のディレクトリの上書きが拒否されるため、/Main1/Sub2
エラー が発生します。この場合、まず の既存のディレクトリの名前を変更 (または削除) します。directory not empty
mv
/Main2
mv /Main2/Sub2 /Main2/SomethingElse
間違ったパスを使用しています。すべて大文字と小文字が区別されることを覚えておいてください。また、相対パスと
~
拡張にも注意してください。これらはすべて、現在の作業ディレクトリによって異なります。/Main1/Sub2 Main1/Sub2 ~/Main1/Sub2
ソースディレクトリおよび/または宛先ディレクトリへの書き込み権限がありません。これはエラーメッセージから明らかです:
mv: cannot move 'thing' to '/place': Permission denied
。その場合、私のお気に入りのコマンドを実行して問題を解決できます。sudo !!
答え2
わかりました: を使用するとsudo mv /Main1/Sub2 /Main2
うまくいきました。主な違いは、ルートになることだと思います。