Script de shell para cópia "inteligente" -- bash campo com scripts camp askubuntu Relacionado O problema

Shell script for “intelligent” copying


0
vote

problema

português

Estou trabalhando em um script de shell. Para o backgroud: Eu gravei muitas músicas do rádio com o meu Mac. Cada música é um *.eyetv arquivo "no meu Mac. Na verdade, esses "arquivos" são apenas pastas, contendo um arquivo .mpg com um nome de arquivo enigmático como 00000000144ad5e9.mpg e alguns metadados.

As gravações são organizadas em algumas pastas, cada uma contendo como 20 gravações (um CD de áudio). Todas essas pastas estão em um NAS.

Estou tentando escrever um script, que cria pastas no meu Mac e, em seguida, copia os MPGs neles renomeando para o nome de seu diretório pai.

Estrutura de diretório no NAS para o exemplo de música " Set fire to the Rain ": /music/recordings1/Set Fire to the Rain - ADELE.eyetv/00000000144ad5e9.mpg (e alguns metadados para EyeTV)

Estrutura desejada no meu disco rígido após a cópia: / home/me/music/recordings1/Set fire to the Rain.mpg

meu código (não funciona) até agora:

  dirname=$(basename `pwd | tr ' ' '_'`.eyetv) mkdir ~/Musik/$dirname find . -name '*.eytv' | xargs -0 -i cd {} | find . -name ????????????????.mpg -print0 | xargs -0 -i cp -v {} ~/Musik/$dirname/$(basename `pwd | tr ' ' '_'`.mpg)    

Formiga de saudações Agradecemos antecipadamente, Markus

english

I'm working on a shell script. To the backgroud: I recorded a lot of songs from the radio with my Mac. Each song is a *.eyetv "file" on my mac. Actually these "files" are just folders, containing a .mpg file with a cryptical filename like 00000000144ad5e9.mpg and some metadata.

The recordings are organized in a few folders, each containing like 20 recordings (an audio CD). All these folders are on a NAS.

I'm trying to write a script, which creates folders on my mac and then copies the mpgs into them renaming them to the name of their parent directory.

Directory structure on the NAS for the example song "Set fire to the Rain": /music/recordings1/Set Fire to the Rain - ADELE.eyetv/00000000144ad5e9.mpg (and some metadata for EyeTv)

Desired structure on my hard disc after copying: /home/me/music/recordings1/Set fire to the Rain.mpg

My (not working) code so far:

dirname=$(basename `pwd | tr ' ' '_'`.eyetv) mkdir ~/Musik/$dirname find . -name '*.eytv' | xargs -0 -i cd {} | find . -name ????????????????.mpg -print0 | xargs -0 -i cp -v {} ~/Musik/$dirname/$(basename `pwd | tr ' ' '_'`.mpg) 

Greetings ant thanks in advance, Markus

     
   
   

Lista de respostas

0
 
vote
vote
Melhor resposta
 

Você pode usar mcp :

  mcp -v '/music/recordings1/* - *.eyetv/*.mpg' '/home/me/music/recordings1/#1.mpg'    

mcp está incluído em mmv Pacote. Por padrão, mmv não está instalado no Ubuntu, mas você pode instalá-lo no terminal usando o seguinte comando:

  sudo apt-get install mmv    

ver gem install vagrant0 para Mais informações.

 

You can use mcp:

mcp -v '/music/recordings1/* - *.eyetv/*.mpg' '/home/me/music/recordings1/#1.mpg' 

mcp is included in mmv package. By default, mmv is not installed in Ubuntu, but you can install it from terminal using the following command:

sudo apt-get install mmv 

See man mmv for more info.

 
 
 
 

Perguntas relacionadas

11  Execute scripts automaticamente no servidor após conexão SSH  ( Run scripts automatically in server after ssh connection ) 
Como executar um script automaticamente no servidor em breve após o sistema do cliente, estabeleça conexão SSH com o servidor para ex: Suponha que um usuári...

0  Estágios diferentes no Bash Programming  ( Different stages in bash programming ) 
Eu tenho um programa bash com diferentes estágios como: $stage=1 if [ stage -le 1]; then echo "execute stage 1" fi if [ stage -le 2]; then echo "execute s...

22  Bash Script não executando de Crontab [Duplicate]  ( Bash script not executing from crontab ) 
. Esta pergunta já tem respostas aqui : Por que os scripts crontab não estão funcionando? ...

2  Abra a pasta pai de um link simbólico por clique com o botão direito do mouse?  ( Open the parent folder of a symbolic link via right click ) 
Podemos abrir uma pasta pai de qualquer arquivo usando o script nautilus como #!/bin/bash nautilus "$1" Se eu fizer este script no link simbólico que...

9  Como desligar o Ubuntu depois (2 horas) de ocioso?  ( How to shutdown ubuntu after 2 hours of idle ) 
em execução: xubuntu 14.04 32bit. Eu li vários desatualizados, não trabalhando, trabalhando diferente que quero respostas aqui e em outro lugar. Eu tinha um...

3  dpkg sem shell  ( Dpkg with no shell ) 
Como executar o dpkg sem shell? Aqui está o meu problema: Eu furo e script autorun.sh na minha chave USB. Para executar este script, criei regras em /e...

2  Como monitorar um arquivo local para alterações, aplique um regex Substituir e salve / sobrescreva em um arquivo de destino?  ( How to monitor a local file for changes apply a regex replace on it and save ov ) 
Eu gostaria de iniciar um script ou algo que assiste a um arquivo de texto para alterações. Quando o arquivo é alterado, eu quero executá-lo através de um ana...

0  Script Shell para instalar o software e configurar a rede  ( Shell script to install software configure network ) 
Ei, eu queria saber, como, depois de uma nova instalação do Ubuntu, eu posso instalar todos os softwares essenciais (VLC, Apache, MySQL, PHP, Java, NetBeanSet...

135  Como executar um script apenas clicando duas vezes como arquivos .exe no Windows?  ( How to execute a script just by double clicking like exe files in windows ) 
Como posso fazer um executável de script bash clicando duas vezes como .exe arquivos no Windows? Eu tentei Criando um lançador e atribuir o script a ele , ...

6  Minha função de bash é executada apenas uma vez por terminal aberta  ( My bash function runs only once per terminal opened ) 
Quando eu tento executar minha função bash, definida em .bashrc, por uma segunda vez no mesmo terminal, ela não funciona. O código é o seguinte: lspci6 ...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.