Suponha que eu tenha uma pasta contendo alguns arquivos e algumas pastas (os arquivos podem ser de qualquer tipo). E eu quero mover / copiar alguns desses arquivos e pastas usando mv
/ cp
command. Existe alguma maneira, de modo que eu possa selecionar alguns deles aleatoriamente, assim como fazemos a seleção usando a tecla Ctrl e mover / copiar usando o terminal? Não posso usar nem curinga, nem a expressão regular, pois quero selecionar arquivos de tipos diferentes, e seus nomes têm poucas semelhanças.
command-line
bash
cp
mv
MikhilMC
fonte
fonte
cp -t /dest/ file{1,2,3}
ou para intervaloscp -t /dest/ file{1..3}
. Também funciona para argumentos e combinações não numéricos, por exemplo,cp -t /dest/ f{ile,ly}.{csv,txt}
executacp -t /dest/ file.txt file.csv fly.txt fly.csv
. Tenha cuidado ao substituir as coisas se a posição for importante, mas as acho úteis.Respostas:
Se você deseja mover ou copiar todos os arquivos para o mesmo diretório, pode usar a
-t
opçãocp
ormv
, mas isso significa que você deve digitar / fornecer cada nome de arquivo como argumento. Funciona da seguinte maneira, com tantos arquivos quantos argumentos você desejar:ou
Isso é bastante trabalhoso, mas a digitação dos nomes dos arquivos pode ser facilitada com a conclusão da guia do Bash .
Como alternativa, o script bash a seguir encontrará todos os arquivos em um diretório, fornecido como o primeiro argumento, e copiará os arquivos selecionados no diretório de destino, como o segundo argumento.
Ele verifica cada arquivo e pergunta se você deseja copiar esse arquivo. No final da seleção de arquivos, ele mostra uma lista dos arquivos selecionados e pergunta se você deseja copiá-los para o diretório de destino:
Esteja avisado de que não há erro ao verificar neste script se o diretório de destino existe ou se você inseriu os argumentos corretos.
fonte
Aqui está um script que seleciona um conjunto aleatório de arquivos / diretórios a serem copiados. Ele pode lidar com nomes de arquivos arbitrários, mesmo aqueles que contêm novas linhas e espaços. Salve o script como
~/bin/randomCopy.sh
, torne-o executável (chmod a+x ~/bin/randomCopy.sh
) e execute-o, fornecendo-lhe o diretório de origem como o primeiro argumento, o diretório de destino como o segundo e o número de arquivos / diretórios (o script não diferencia os arquivos e diretórios, conforme solicitado) para ser copiado. Por exemplo, para copiar 5 arquivos ou diretórios aleatórios de/foo
para/bar
:O script:
Observe que isso substituirá os arquivos existentes, se houver algum com o mesmo nome no diretório de destino.
fonte
Talvez tente usar algo como Midnight Commander ? É um aplicativo de console que fornece recursos semelhantes ao gráfico Nautilus File Manager.
fonte
Recentemente, descobri uma solução eficaz para esse problema usando xargs.
Então digite
Ctrl + C
. Isso funcionará com certeza. Eu testei. Por esse método, podemos selecionar arquivos da mesma forma que oCtrl
botão no modo gráfico, e copiar / mover / remover.fonte