O caminho mais fácil:
for f in /some/path/*; do
if [ -f "$f" ]; then
mv "$f" /some/other/path
fi
done
A maneira um pouco mais complicada:
find /some/path -mindepth 1 -maxdepth 1 -type f -exec mv {} /dome/other/path \;
Como você move todos os arquivos (excluindo subdiretórios) de um diretório para outro. Eu preferiria que a solução usasse apenas scripts básicos de shell.
Usando find
:
find . -maxdepth 1 -type f -print0 | xargs -0 -I {} mv {} /path/to/target/directory/{}
Isso também lidará com nomes de arquivos contendo novas linhas.
$ cd $SOURCE_DIR
$ mv 'ls -p| grep -v /' $Target_dir
Etapas da execução
cd $src
mv 'find . -maxdepth 1 -type f -printf '%f\n'' $tgt
deve fazer isso, onde $src
é sua pasta de origem e $tgt
é sua pasta de destino
Tags files shell-script move