Mover vários arquivos aninhados até que tenham apenas 1 diretório de profundidade

1

Eu tenho vários arquivos em vários diretórios, alguns enterrados em subdiretórios. Eu quero ser capaz de mover todos os arquivos até que eles tenham apenas um diretório de profundidade.

por exemplo:

/home/folder/subfolder/file1.txt
/home/folder2/file2.txt
/home/folder3/subfolder/subfolder/subfolder/file3.txt

torna-se:

/home/folder/file1.txt
/home/folder2/file2.txt
/home/folder3/file3.txt

descobri que posso usar

find ./*/ -type f

para localizar todos os arquivos. Mas não tenho certeza de como movê-los para que eles tenham apenas um diretório de profundidade.

    
por Zach 12.10.2016 / 11:05

1 resposta

0

Eu encontrei uma resposta na forma de um script bash

#!/bin/sh

IFS='
'
for i in $(find ./*/ -mindepth 2 -type f); do
    mv -- "${i}" "${i%/*/*}"
done
    
por 12.10.2016 / 11:26

Tags