mvを使用してディレクトリを別のディレクトリに移動するだけです

mvを使用してディレクトリを別のディレクトリに移動するだけです

奇妙なことに遭遇しました。ディレクトリを別のディレクトリ内にドラッグする (移動する) のと同等の操作を実行したいのです。GUI にとっては些細な日常的なタスクです。

これが私のツリーです:

.
├── assemble.py
├── Basic Information Retrieval.ipynb
├── Basic Information Retrieval.tex
├── Book
│   ├── book.aux
│   ├── book.log
│   ├── Book_master.tex
│   ├── book.out
│   ├── book.pdf
│   ├── book.tex
│   ├── book.toc
│   ├── build.sh
│   ├── chapter_0.tex
│   ├── chapter_1.tex
│   ├── chapter_2.tex
│   ├── chapter_3.tex
│   ├── chapter_4.tex
│   ├── chapter_5.tex
│   ├── Cosine Similarity_files
│   │   ├── Cosine Similarity_17_0.png
│   │   └── Cosine Similarity_22_0.png
│   ├── Language Models_files
│   │   └── Language Models_5_0.png
│   └── nb_preamble.tex
├── convert_to_latex.sh
├── convert_to_pdf.sh
├── corpus_zika
├── Cosine Similarity_files
│   ├── Cosine Similarity_17_0.png
│   └── Cosine Similarity_22_0.png
├── Cosine Similarity.ipynb
├── Cosine Similarity.tex
├── Dicionario_zika.dict
├── Language Models_files
│   └── Language Models_5_0.png
├── Language Models.ipynb
├── Language Models.tex
├── Probabilistic Text Models.ipynb
├── Probabilistic Text Models.tex
├── README.md
├── Topic Modeling.ipynb
└── Topic Modeling.tex

Cosine Similarity_filesに移動してBook/、すでに存在する場合は最終的に上書きしたいと思います。自然なコマンドを発行します。

mv Cosine\ Similarity_files Book/

そして、「WTF!?」というメッセージが表示されますDirectory not empty。しかし、もう 1 レベル深く移動するように指示すると、状況は改善されます。

mv Cosine\ Similarity_files Book/Cosine\ Similarity_files

これまでできなかったことを忠実に実行します。ソース ディレクトリをターゲット ディレクトリに書き込みます。何てことだ!

それはなぜですか?意味がありますか?

答え1

実行すると、ディレクトリmv Cosine\ Similarity_files Book/内に空ではない同じ名前のディレクトリが存在するため、何も起こりませんBook

don_crisstiが上記のコメントで述べたように、 を実行するとmv Cosine\ Similarity_files Book/Cosine\ Similarity_filesCosine\ Similarity_filesBook/Cosine\ Similarity_files/Cosine\ Similarity_files

移動するディレクトリ内の既存のファイルを上書きする場合は、-fまたは-iオプションを使用する必要があります。

-f
--force
     Remove existing destination files and never prompt the user.

-i
--interactive
     Prompt whether to overwrite each existing destination file,
     regardless of its permissions.  If the response does not begin
     with `y' or `Y', the file is skipped.

例:mv -f Cosine\ Similarity_files Book/

注意:-f移動しようとしているディレクトリ内のディレクトリは上書きまたはマージされません。ファイルのみが上書きされます。

ディレクトリを結合または上書きする場合は、オプションrsyncを 使用できます--remove-source-files詳細についてはこの回答をご覧ください

関連情報