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_files
in 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 empty
WTF!? 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_files
wurde es bei der Ausführung Cosine\ Similarity_files
zu verschobenBook/Cosine\ Similarity_files/Cosine\ Similarity_files
Wenn Sie vorhandene Dateien im verschobenen Verzeichnis überschreiben möchten, müssen Sie die Option -f
oder 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: -f
Verzeichnisse 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 rsync
die --remove-source-files
Option verwenden.Weitere Informationen finden Sie in dieser Antwort.