2012-04-01 3 views
9

Wie kann ich den gesamten Ordner _vim in ~/.vim verschieben?Bash: Wie kann ich den gesamten Inhalt des Ordners auf eine Ebene verschieben?

$ mv ~/.vim/_vim/ ~/.vim 
mv: `/home/kithokit/.vim/_vim/' and `/home/kithokit/.vim/_vim' are the same file 

Ich kann das nicht tun. Im Grunde, was ich tun möchte, ist nur die gesamten Inhalt _vim Ordner bis zu einem Niveau bewegen, das in ~/.vim/

+0

@Mat warum runter? warum nah ? –

+0

Ich habe keine von denen. – Mat

+0

Keine Programmierfrage - gehört auf http://superuser.com –

Antwort

17
mv ~/.vim/_vim/* ~/.vim 

Bash erweitert der * so der Befehl jetzt

mv ~/.vim/_vim/file_1 ... ~/.vim/_vim/file_n ~/.vim 
+0

thx es funktioniert! Ich vermisse die * –

+0

Dies wird Punktdateien (wie ".config") überspringen. –

+0

@Dunes Genau, es wird _all_ Verzeichnisinhalt nicht verschoben (wie angefordert). Ich denke das ist erwähnenswert. –

0
liest ist
$ mv ~/.vim/_vim/* ~/.vim/ 
$ rmdir ~/.vim/_vim 
1

Wenn Sie sowohl versteckte Datendateien als auch reguläre, sichtbare Dateien verschieben und auch keine bereits in ~/.vim/ vorhandenen Dateien überlisten möchten, dann tun Sie dies:

for A in $(find -mindepth 1 -maxdepth 1 ~/.vim/_vim) ; do B=$(basename $A) ; mv -iv ~/.vim/_vim/$B ~/.vim/ ; done 

Am wahrscheinlichsten werden Sie das mit rmdir ~/.vim/_vim folgen wollen.

Siehe auch @Dunes Vorschläge in den Kommentaren unten.

+1

Sie können Xargs verwenden, um den Befehl einfacher zu machen. 'finde -mindepth 1 -maxdepth 1 ~/.vim/_vim | xargs mv -iv -t ~/.vim/'. Sie können auch "-u" anstelle von "-i" verwenden. – Dunes

+0

@Dunes: Das ist cool. Ich hatte von der Option "-t" nichts gewusst und es ist zehn Jahre her, dass ich 'xargs' zum letzten Mal benutzt habe. Ich mag das. – thb

Verwandte Themen