GNU/Linux >> Linux Esercitazione >  >> Linux

Sposta tutti i file tranne uno

Un modo rapido sarebbe modificare il nome del file tux in modo che il tuo comando di spostamento non corrisponda.

Ad esempio:

mv Tux.png .Tux.png

mv * ~/somefolder

mv .Tux.png Tux.png

Metti quanto segue nel tuo .bashrc

shopt -s extglob

Estende le espressioni regolari. Puoi quindi spostare tutti i file tranne uno di

mv !(fileOne) ~/path/newFolder

Eccezioni rispetto ad altri comandi

Si noti che, nella copia delle directory, il forward-flash non può essere utilizzato nel nome come notato nel thread Perché extglob tranne la rottura tranne la condizione?:

cp -r !(Backups.backupdb) /home/masi/Documents/

quindi Backups.backupdb/ è sbagliato qui prima della negazione e non lo userei nemmeno nello spostamento delle directory a causa del rischio di usare erroneamente i glob con altri comandi e possibili altre eccezioni.


Se usi bash e hai il extglob set di opzioni di shell (che di solito è il caso):

mv ~/Linux/Old/!(Tux.png) ~/Linux/New/

Io andrei con il metodo tradizionale find &xargs:

find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png -print0 | 
    xargs -0 mv -t ~/Linux/New

-maxdepth 1 fa in modo che non cerchi in modo ricorsivo. Se ti interessano solo i file, puoi dire -type f . -mindepth 1 fa in modo che non includa il ~/Linux/Old percorso stesso nel risultato. Funziona con qualsiasi nome di file, inclusi quelli che contengono newline incorporati.

Un commento fa notare che il mv -t opzione è probabilmente un'estensione GNU. Per i sistemi che ne sono sprovvisti

find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png \
    -exec mv '{}' ~/Linux/New \;

Linux
  1. 3 modi per eliminare tutti i file in una directory tranne uno o pochi file con estensioni

  2. Come spostare tutti i file (inclusi quelli nascosti) da una directory all'altra?

  3. Eliminare tutti i file in una cartella tranne l'ultimo (più recente) 20?

  4. Come spostare (e sovrascrivere) tutti i file da una directory all'altra?

  5. Comando per elencare tutti i file tranne . (punto) e .. (punto punto)

Come spostare tutti i file dalla directory corrente alla directory superiore?

Trova tutti i file più vecchi di un minuto

Come eliminare tutti i file in una directory tranne alcuni?

Rimuovi tutti i collegamenti simbolici dei file in un comando

iptables elimina tutte le richieste ICMP in entrata tranne che da un IP

Come spostare tutti i file e le cartelle tramite il comando mv