Mova todos os arquivos para um novo diretório, excluindo o diretório [duplicado]

6

Eu tenho o seguinte:

~@matrix:~/btp200/assignments> ls -la
total 40
drwxr-xr-x 3 molszewski1 users 4096 Feb  6 13:20 .
drwxr-xr-x 6 molszewski1 users 4096 Feb  6 13:14 ..
-rw-r--r-- 1 molszewski1 users 5727 Feb  6 13:20 ISBN.cpp
-rw-r--r-- 1 molszewski1 users  361 Feb  6 13:18 ISBN.h
-rw-r--r-- 1 molszewski1 users 3753 Feb  6 13:17 ISBNPrefix.cpp
-rw-r--r-- 1 molszewski1 users  422 Feb  6 13:15 ISBNPrefix.h
drwxr-xr-x 2 molszewski1 users 4096 Feb  6 13:20 a1
-rw-r--r-- 1 molszewski1 users    0 Feb  6 13:15 a1.cpp
-rw-r--r-- 1 molszewski1 users 6271 Feb  6 13:18 prefixRanges.txt
~@matrix:~/btp200/assignments> mv * a1
mv: cannot move 'a1' to a subdirectory of itself, 'a1/a1'

Como posso mover tudo para o diretório a1 , excluindo a1 ?

    
por soju 06.02.2013 / 19:22

3 respostas

8

Uma maneira de incluir tudo menos um item é:

mv !(a1) a1

Este é um recurso que você precisa ter ativado primeiro com:

shopt -s extglob
    
por 06.02.2013 / 19:43
3

Você pode conseguir isso usando o seguinte comando

find . -maxdepth 1 | grep -v a1| xargs -i mv {} ./a1
    
por 06.02.2013 / 19:33
2
mv -f * a1

Isso forçará a mudança a acontecer apesar do argumento. Então faça um ls depois e você verá que funcionou.

    
por 06.02.2013 / 19:30

Tags