Mova todos os arquivos para sua própria pasta

4

Existe alguma maneira em uma caixa Linux para mover cada arquivo em um diretório para seu próprio subdiretório (ou seja, criar um diretório com o mesmo nome e movê-lo para dentro)?

    
por Agarax 16.07.2011 / 20:38

1 resposta

7

Tente este snippet, supondo que tudo o que você tem no diretório atual são arquivos (sem diretórios):

for file in *
do
  mv "$file" "$file".tmp &&
  mkdir "$file" &&
  mv "$file".tmp "$file"/"$file"
done

Caso contrário (testado apenas levemente):

find . -maxdepth 1 -type f -exec mv '{}' '{}'.tmp \; -exec mkdir '{}' \; -exec mv '{}'.tmp '{}'/'{}' \;

Isso funcionou no meu diretório de teste com alguns arquivos arbitrariamente nomeados, alguns deles com espaços.

    
por 16.07.2011 / 20:45