Você pode tentar
find . -maxdepth 1 -type f -exec mv {} destination_path \;
Como posso mover apenas os arquivos simples (não os diretórios) de uma pasta no Linux para outra pasta usando o comando mv
?
Eu tentei mv * ~/
, mas copiei tudo, inclusive os diretórios.
Você pode tentar
find . -maxdepth 1 -type f -exec mv {} destination_path \;
Eu sou um tipo de "usar um martelo para tudo", então eu uso programas shell da Bourne para coisas que outros usam programas externos para ...
for file in * .*
do
test -f "$file" && mv "$file" "$HOME"/
done
Algumas pessoas gostam de fazer as coisas com o mínimo de digitação possível, mas eu sou um datilógrafo bastante rápido e eu tenho coisas assim embutidas no meu cérebro, então não é muito doloroso fazer isso em vez de olhar os argumentos exatos para encontrar e exec e tudo isso.
YMMV, embora ...
@Meghost é muito próximo. Aqui está o que eu tenho para mover todos os arquivos (incluindo arquivos ocultos), mas não os diretórios:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
O .
after find assume que o diretório atual é a origem dos arquivos que você deseja mover. Caso contrário, o comando pode ser revisado da seguinte forma:
find /source_path -maxdepth 1 -type f -name '*' -exec mv -n {} /dest_path \;
Se você quiser mover apenas arquivos comuns e não arquivos ocultos:
find . -maxdepth 1 -type f -name '[!.]*' -exec mv -n {} /dest_path \;
Se você deseja mover apenas arquivos ocultos e não arquivos comuns:
find . -maxdepth 1 -type f -name '.*' -exec mv -n {} /dest_path \;
você pode usar o find
find * -maxdepth 1 -type f -exec mv {} ~ \;
mv 'encontra ./sourcedir/* -type f' ./destdir
Tags mv find linux unix file-management