GNU/Linux >> Linux Esercitazione >  >> Linux

Come copiare file e sottodirectory nascosti (che iniziano con un punto) in Linux?

Finché cerchi solo file e cartelle nascosti a livello di A e non vuoi, ad esempio

A/b/.hidden

da copiare, dovresti essere in grado di usare questo:

cp -r A/.[^.]* B

In pratica significa copiare tutto ciò che inizia con . e poi qualsiasi carattere diverso da . Ciò esclude . e ..

Modifica:rimosso -p dal comando cp poiché Asker non ha indicato di voler preservare proprietà, date, ecc.


Il problema con A/.* è che c'è la directory . in A che corrisponde anche al pattern.

Puoi attivare i modelli glob estesi e utilizzare quanto segue:

shopt -s extglob
cp -r A/.!(?(.)) B    

Corrisponde ai file il cui nome inizia con un punto e il cui secondo carattere non è né un punto né niente ( ?(.) corrisponde a niente o a un punto, !(...) lo nega, cioè !(?(.)) corrisponde a tutto il resto che niente o un punto).


Per casi come questo consigliamo di utilizzare find invece di cp come questo:

find A/ -type f -maxdepth 1 -name '.*' -exec cp -p {} B/ \;

La sintassi di base si suddivide in questo modo:

  • find A/ -type f :find elementi nella directory A/ il cui tipo è un file (invece di una directory)…
  • -maxdepth 1 -name '.*' :A questo per un maxdepth di 1 directory e di cui name inizia con . .
  • -exec cp -p {} B/ \; :E una volta trovati questi file, exec il cp comando con un -p flag per preservare date/orari dalla fonte ({} ) alla destinazione di B/ .

Mi piace usare maxdepth per aggiungere un livello di controllo in modo da non copiare accidentalmente un intero filesystem. Ma sentiti libero di rimuoverlo.


Linux
  1. Come crittografare i file con gocryptfs su Linux

  2. Come trovare file con autorizzazioni SUID e SGID in Linux

  3. Come comprimere file e directory su Linux (con esempi)

  4. Come trasferire file in Linux con SCP e Rsync

  5. Come eseguire il chmod e il chown dei file nascosti in Linux?

Come rinominare file e directory in Linux

Come comprimere file e directory in Linux

Come copiare file e directory in Linux

Come copiare un gran numero di file in Linux

Come copiare file e directory nel terminale Linux

Come mostrare file nascosti su Linux