2012-04-01 8 views
9

Jak przenieść cały folder _vim do ~/.vim?Bash: Jak przenieść całą zawartość folderu do jednego poziomu?

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

Nie mogę tego zrobić. Zasadniczo co chcę zrobić, to po prostu przenieść całą zawartość wewnątrz _vim folderów do jednego poziomu, który jest w ~/.vim/

+0

@ Czemu więc upadł? dlaczego blisko ? –

+0

Nie zrobiłem żadnej z nich. – Mat

+0

Nie pytanie dotyczące programowania - należy na http://superuser.com –

Odpowiedz

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

Bash rozszerza takie polecenie * teraz czyta

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

thx to działa! tęsknię za * –

+0

Pominie to pliki punktów (jak ".config"). –

+0

@Dunes Dokładnie, nie przeniesie _all_ zawartości katalogu (zgodnie z żądaniem). Myślę, że warto o tym wspomnieć. –

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

Jeśli chcesz zachować ostrożność, aby przenosić ukryte pliki dotfile, a także zwykłe, widoczne pliki, a także, aby nie przerywać żadnych plików już znajdujących się w ~/.vim/, wykonaj następujące czynności:

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

Najprawdopodobniej będziesz chciał to zrobić z numerem rmdir ~/.vim/_vim.

Zobacz również sugestie @Dunes w komentarzach poniżej.

+1

Możesz użyć xargs, aby polecenie było prostsze. 'find -mindepth 1 -maxdepth 1 ~/.vim/_vim | xargs mv -iv -t ~/.vim/'. Możesz także użyć '-u' zamiast' -i'. – Dunes

+0

@Dunes: To jest fajne. Nie wiedziałem o opcji '-t' i minęło dziesięć lat, odkąd ostatnio użyłem' xargs'. Lubię to. – thb