Come posso copiare e rinominare i file con lo stesso nome


0

Ho una struttura di directory che contiene un numero di file che hanno lo stesso nome di: dir1 / test dir2 / test dir3 / test Voglio trovare ogni file di test e copiarlo in un'altra directory con un nome file univoco (arbitrario) Posso analizzare i dati che contengono. Potrebbe esserci un gran numero di questi file con nomi simili contenenti diversi livelli in profondità nella struttura delle directory. Posso usare find per localizzare i file ma la ridenominazione (usando find) mi allude. Qualcuno può fornire indicazioni su questo problema?

Risposte:


1
  • source_dir è il modulo della directory principale in cui si desidera cercare i file.
  • destination_dir è la directory di destinazione in cui si desidera copiare o spostare i file
  • * .doc è il nome del file o il modello di file da cercare.

Puoi copiare i file con il seguente comando! si noti che --backup=numberedcreerà un file con suffisso aumentato numericamente se il file con quel nome è già nella directory di destinazione.

find /source_dir -type f -name *.doc | xargs -I '{}' cp --backup=numbered {} /destination_dir

Puoi spostare i file con il seguente comando! si noti che --backup=tcreerà un file con suffisso aumentato numericamente se il file con quel nome è già nella directory di destinazione.

find /source_dir -type f -name *.doc | xargs -I '{}' mv --backup=t {} /destination_dir

Puoi anche prendere in considerazione l'utilizzo di questi comandi con sudo se nella ricerca potresti trovare file di corrispondenza di destinazione appartenenti ad altri utenti.

Se vuoi un output dettagliato di questi comandi aggiungi aggiungi -v dopo --backup=numberedo --backup=t.


0

Puoi sostituire / nel percorso con un altro carattere e usarlo come nuovo nome file:

#!/bin/bash
for f in /dir*/*
do
    cp "$f" "${f//\//.}"
done

Posso integrare la tua risposta in un comando find? Come in, trova. -name FNAME -exec bash -c 'per f in {} do; cp {} "$ f" "/ tmp / somedir / $ {f // \ //.}"; fatto \;. L'ho provato e il modificatore ricevuto non è riuscito. Questo dovrebbe funzionare?
Charles,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.