Eu tenho várias pastas na pasta A
. Eu quero mover arquivos de todas essas pastas para A
.
Ou
Quero cortar todos os arquivos das pastas filho e colá-los na pasta pai.
Como fazer isso?
mv */* .
não moverá arquivos da subpasta das subpastas.
Eu tenho várias pastas na pasta A
. Eu quero mover arquivos de todas essas pastas para A
.
Ou
Quero cortar todos os arquivos das pastas filho e colá-los na pasta pai.
Como fazer isso?
mv */* .
não moverá arquivos da subpasta das subpastas.
Respostas:
Vá para o seu A
diretório e execute
find . -mindepth 2 -type f -print -exec mv {} . \;
o que significa "encontre todos os arquivos neste diretório e seus subdiretórios e execute mv com o diretório de destino. para cada arquivo encontrado para movê-los para o diretório atual.
find
você pode ser um pouco mais elegante e não gerar um mv
processo para cada arquivo:find A -mindepth 2 -type f -exec mv -t A \{\} +
find . -mindepth 2 -type f -print -exec mv --backup=numbered {} . \;
Bem, você pode criar um arquivo e chamá-lo de "cutme" (para criar um arquivo chamado cutme no tipo de terminal nano cutme
. Para salvá-lo, pressione CTRL + X e, em seguida, pressione ENTER.) Por exemplo, e cole o seguinte, assumindo que:
find * -type f -print -not -type d -and -not -regex 'cutme' -exec mv {} .. \;
Observe o nome cutme dentro da linha. Deve ser o mesmo que o script que você executará.
Após criar o arquivo e colar a linha acima, execute o seguinte na mesma pasta que o script:
chmod +x cutme
. Isto dará a seu novo arquivo a bandeira "executável" para que você possa executá-lo como este: ./cutme
.
mv */* .
:?