Einfaches Verschieben eines Verzeichnisses in ein anderes mit mv

Einfaches Verschieben eines Verzeichnisses in ein anderes mit mv

Ich bin gerade auf diese Merkwürdigkeit gestoßen: Ich möchte das Äquivalent zum Ziehen eines Verzeichnisses in ein anderes (Verschieben) durchführen. Eine triviale Alltagsaufgabe für eine GUI.

hier ist mein Baum:

.
├── 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

Ich möchte Cosine Similarity_filesin wechseln Book/und es eventuell überschreiben, wenn es bereits dort ist. Ich gebe den natürlichen Befehl ein:

mv Cosine\ Similarity_files Book/

und ich bekomme die Meldung Directory not emptyWTF!? Aber es wird besser, wenn ich es auffordere, eine Ebene tiefer zu gehen:

mv Cosine\ Similarity_files Book/Cosine\ Similarity_files

Es tut brav, was es vorher nicht getan hat! Es schreibt das Quellverzeichnis in das Zielverzeichnis!! WTF²!?!

Warum ist das so? Macht das irgendeinen Sinn?

Antwort1

Beim Ausführen mv Cosine\ Similarity_files Book/passiert nichts, da im Verzeichnis ein nicht leeres Verzeichnis mit gleichem Namen vorhanden ist Book.

Wie don_crissti in den obigen Kommentaren angab, mv Cosine\ Similarity_files Book/Cosine\ Similarity_fileswurde es bei der Ausführung Cosine\ Similarity_fileszu verschobenBook/Cosine\ Similarity_files/Cosine\ Similarity_files

Wenn Sie vorhandene Dateien im verschobenen Verzeichnis überschreiben möchten, müssen Sie die Option -foder verwenden -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.

Beispiel:mv -f Cosine\ Similarity_files Book/

Hinweis: -fVerzeichnisse innerhalb des Verzeichnisses, das Sie verschieben möchten, werden nicht überschrieben oder zusammengeführt. Es werden nur Dateien überschrieben.

Wenn Sie Verzeichnisse zusammenführen oder überschreiben möchten, können Sie rsyncdie --remove-source-filesOption verwenden.Weitere Informationen finden Sie in dieser Antwort.

verwandte Informationen