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 Adiretó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.
findvocê pode ser um pouco mais elegante e não gerar um mvprocesso 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 */* .:?