Copia arquivos completos maiores que 1024M para outro diretório

0

Estou usando o daemon de transmissão. Estas são as variáveis de ambiente de conclusão do torrent suportadas pelo daemon de transmissão, conforme mostrado aqui . No diretório do download concluído, localize e copie todos os arquivos maiores que 1024M para outro diretório.

Isso não funciona:

find $TR_TORRENT_DIR/$TR_TORRENT_NAME -type f -size +1024M -exec cp {} /path/to/copies/ \;

Isso funciona, mas usa o diretório para todos os torrents concluídos:

find $TR_TORRENT_DIR -type f -size +1024M -exec cp {} /path/to/copies/ \;

Isso funciona e copia o diretório pai do torrent concluído:

cp -R "$TR_TORRENT_DIR/$TR_TORRENT_NAME" "/path/to/copies/"

Qualquer ajuda seria muito apreciada!

    
por David Custer 31.03.2014 / 06:42

3 respostas

0
find "$TR_TORRENT_DIR/$TR_TORRENT_NAME" -type f -size +1024M -exec cp {} /path/to/copies/ \;
    
por 03.04.2014 / 04:42
0
  1. Você deseja copiar torrents concluídos para um novo local
  2. Você tem um diretório ($ TR_TORRENT_DIR) onde todos os torrents baixados vão. No diretório, cada novo torrent tem um diretório ($ TR_TORRENT_NAME) próprio.

Dadas estas suposições, faça

find $TR_TORRENT_DIR

para pesquisar em todas as pastas, em vez de apenas uma.

Atualização: Encontre arquivos 1G e maiores, obtenha o caminho do arquivo, copie todo o diretório pai do arquivo para o destino.

Poderia ser algo como abaixo. Pode ser melhorado para identificar se dois ou mais arquivos são encontrados em sub-diretórios do mesmo diretório pai e copiá-lo apenas uma vez.

find $TR_TORRENT_DIR/ -type f -size +1024M -exec echo {} \; \
| while read filepath
do
    parentdir=$(dirname $filepath)
    cp -a $parentdir /path/to/copies/
done

Observe que o acima pode quebrar se os nomes dos arquivos contiverem caracteres exóticos.

    
por 31.03.2014 / 07:30
0

Talvez:

cd "$TR_TORRENT_DIR" && cp -R "$TR_TORRENT_NAME" "/path/to/copies/"
    
por 31.03.2014 / 10:41

Tags