duplica una struttura di cartella / file utilizzando un file segnaposto

1

Ho una grande libreria di media digitali. La maggior parte viene mantenuta "offline" ma il software della libreria che uso (Plex) utilizza i file multimediali per creare la libreria e quindi ho bisogno di usare i file segnaposto.

Uso di video di 30 secondi "questo file è archiviato" Posso facilmente catalogare film offline in Plex. "Rsync" la struttura della directory senza file e quindi "fa cp" un segnaposto in ciascuna directory del film e rinominare usando il nome della cartella padre.

Per gli spettacoli televisivi questo non è pratico in quanto possono esserci centinaia di episodi per spettacolo. Vorrei sapere se esiste un modo per duplicare la struttura di cartelle / file di un programma televisivo, con molti episodi in un'unica cartella, utilizzando lo stesso file segnaposto.

Penso che ci sia un modo per creare cartelle dai nomi dei file, quindi copiare il segnaposto in ogni nuova cartella, rinominare usando il nome della cartella e quindi spostare i file in un'unica directory, ma non so come.

    
posta Jon Allen 21.06.2018 - 01:09
fonte

1 risposta

0

Ecco cosa farei (potrebbero esserci modi più efficienti per automatizzarlo, ma questo è un trucco rapido che dovrebbe raggiungere ciò di cui hai bisogno). Spero di aver capito correttamente la tua domanda.

Per ottenere un elenco di tutte le directory (e le loro sottodirectory) all'interno di una directory esistente:

Apri Terminale e vai alla cartella esistente contenente la struttura che desideri duplicare (se non hai familiarità con Terminal, sono felice di dare una guida più specifica su come farlo. Fondamentalmente, se pensi a Terminal come Finder, la cartella predefinita che stai "visualizzando" quando apri Terminal è la tua cartella utente. Da lì, puoi digitare pwd per vedere dove sei, ls per vedere un elenco di tutto nella directory corrente, cd [folder name] per spostarsi in una cartella nella directory, quindi cd .. per risalire di un livello nella directory padre).

Digitare il seguente comando:

find . -type d

Questo elencherà tutte le directory contenute nella directory corrente , così come ciascuna delle loro sottodirectory (cioè non smetterà di cercare finché non ci saranno più sottodirectory da inserire).

L'elenco avrà voci che assomigliano a questo:

./directory1
./directory1/subdirectory1
./directory2
./directory2/sub2/sub3/sub4

Abbiamo bisogno di pulire la formattazione solo un po 'prima di poter utilizzare questo testo.

Per ripulire il testo in modo che possa essere utilizzato per ricreare la struttura di tale cartella:

Copia questo elenco in qualsiasi editor di testo semplice (non in Microsoft Word); Io uso TextWrangler ma TextEdit viene fornito con il tuo computer. Utilizzando la funzione Trova e sostituisci, rimuovi ogni istanza di ./ (lascia la casella "Sostituisci con" vuota e premi sostituisci tutto). Questo cancellerà tutti i periodi iniziali e le barre, ma conserverà le barre successive che indicano le sottodirectory.

Inoltre, elimina tutte le nuove righe (ad esempio il testo può essere disposto su più righe, ma non dovrebbero esserci nuovi paragrafi espliciti). L'esempio sopra ora sarà simile a:

directory1 directory1/subdirectory1 directory2 directory2/sub2/sub3/sub4

Per creare un numero arbitrario di nuove cartelle con un solo comando:

Nota: Puoi anche fare questo passo usando i nomi delle cartelle da una fonte diversa, ero un po 'confuso da quale fosse la fonte dei nomi delle cartelle nella tua domanda

Ora dovresti avere un elenco di cartelle / sottocartelle tutto in una riga (anche se potrebbe essere disposto su più righe quando viene eseguito il rendering nell'editor di testo) e non ha segni di punteggiatura *. Copia tutto questo testo negli appunti. Torna a Terminale e usa cd [folder] , cd .. , ls e pwd per navigare verso la cartella di destinazione in cui desideri ricreare la struttura delle cartelle, come descritto sopra.

Una volta che sei nella cartella giusta, digita:

mkdir -p e poi comando v , e premi invio. Assicurati che ci sia uno spazio (e nient'altro) tra mkdir -p e il primo nome di directory, e uno spazio tra ogni successivo nome di directory.

So che le persone hanno vari livelli di familiarità con UNIX e l'ambiente del terminale, quindi se ciò è fonte di confusione non esitate a commentare quali passaggi necessitano di ulteriori chiarimenti.

* Se uno qualsiasi dei nomi di directory incollati nel Terminale ha spazi o caratteri non alfanumerici come (./'!?:_) ecc., è necessario sfuggire a questi o non funzionerà. Cioè, per ogni spazio o altro carattere strano, devi mettere un \ direttamente prima di esso (notare la differenza tra \ e / ). Quindi music/the beatles diventa music/the\ beatles . Puoi anche utilizzare Trova e sostituisci per questo.

    
risposta data 22.06.2018 - 23:29
fonte

Leggi altre domande sui tag