Como mover vários diretórios, mas excluir arquivos no caminho atual com nome semelhante?

5

Digamos que eu tenha um diretório que contenha o seguinte:

dir1/
dir2/
dir3/
...
dir50/
dir1.txt
dir2.txt
dir3.txt
...
dir50.txt

Eu tenho usado o mv dir * / someotherpath /, em seguida, movo os arquivos * .txt de volta. Existe uma maneira de mover apenas os diretórios?

    
por John_Sheares 13.10.2012 / 01:03

3 respostas

9

Se a sua estrutura de diretórios tiver apenas 1 nível de profundidade, mv dir*/ destination realizará essa tarefa.

    
por 13.10.2012 / 01:09
4

Você também pode usar find para realizar essa tarefa

find . -maxdepth 1 -type d -name "dir*"  -exec mv '{}' destination/ \;

Altere o parâmetro maxdepth ou remova-o se a estrutura do diretório tiver mais níveis

    
por 13.10.2012 / 05:57
0

Com uma estrutura de arquivos como esta:

/dir2move2
/dir
  /subdir1
  /subdir2
  index.js

Para mover apenas os subdiretórios e não os arquivos que você poderia fazer:

mv ./dir/*/ ./dir2move2

    
por 18.11.2016 / 01:47

Tags