2012-04-01 14 views
9

Come posso spostare l'intera cartella di _vim in ~/.vim?Bash: come posso spostare tutto il contenuto della cartella fino a un livello?

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

Non posso farlo. Fondamentalmente quello che voglio fare è basta spostare tutto il contenuto all'interno della cartella _vim fino a un certo livello, che è in ~/.vim/

+0

@Mat perché downvote? perché vicino? –

+0

Non ho fatto nessuna di quelle. – Mat

+0

Non è una domanda di programmazione - appartiene a http://superuser.com –

risposta

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

Bash espande la * quali il comando ora legge

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

thx funziona! mi manca * –

+0

Questo salterà i file di punti (come ".config"). –

+0

@Dunes Esattamente, non si sposterà _all_ contenuto della directory (come richiesto). Penso che ne valga la pena. –

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

Se si vuole fare attenzione a spostare dotfiles nascosti e file normali e visibili, e anche di non copiare alcun file già in ~/.vim/, allora fare questo:

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

Molto probabilmente, si vorrà seguire quello con rmdir ~/.vim/_vim.

Vedere anche i suggerimenti di @Dunes nei commenti seguenti.

+1

È possibile utilizzare xargs per semplificare il comando. 'find -mindepth 1 -maxdepth 1 ~/.vim/_vim | xargs mv -iv -t ~/.vim/'. Potresti anche voler usare '-u' invece di' -i'. – Dunes

+0

@Dunes: È fantastico. Non conoscevo l'opzione '-t', e sono passati dieci anni dall'ultima volta che ho usato' xargs'. Mi piace. – thb

Problemi correlati