Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di superbubba
    Registrato dal
    Jan 2003
    Messaggi
    1,474

    [bash] cercare, copiare e rinominare

    Dovrei cercare, all'interno di un disco di backup, un file e copiarlo da un'altra parte. Questo file è presente tante volte quante sono le cartelle dei backup; all'interno del disco ci sono delle cartelle del tipo:

    week1/
    week2
    week3/
    month1/
    month2/
    ...

    Ho bisogno di recuperare il file e copiarlo in una cartella temporanea, aggiungendo al nome un qualche cosa che ne impedisca la sovrascrittura da parte del cp. La mia idea è stata quella di aggiungere al nome del file il risultato del comando date (con i soli secondi):

    codice:
    find . -name pippo -exec cp {} /tmp/pippo_`date +%s` \;
    Ma sembra che sovrascriva comunque il tutto su di un unico file (in tmp c'è sempre un solo file mentre con un find senza exec vedo oltre venti copie del file "pippo"), probabilmente perchè `date +%s` viene lanciato una volta sola dalla bash.
    Fondamentalmente voglio cercare, copiare e rinominare; meglio ancora se riuscissi a fare il merge di pippo con la datta dal file in formato anno/mese/giorno.

  2. #2
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    di solito se devo itarare i risultati di un find lo faccio con un ciclo for, lo trovo più flessibile
    codice:
    #!/bin/bash/
    
    COPY_DIR="./copia"
    FILE_NAME="asd"
    let k=0
    
    for i in $(find -name $FILE_NAME);
    do
    	cp $i $COPY_DIR/$(basename $i)_$k
    	let k++;
    done;
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.