GNU/Linux >> Tutoriels Linux >  >> Linux

Déplacer tous les fichiers sauf un

Un moyen rapide serait de modifier le nom du fichier tux afin que votre commande de déplacement ne corresponde pas.

Par exemple :

mv Tux.png .Tux.png

mv * ~/somefolder

mv .Tux.png Tux.png

Mettez ce qui suit dans votre .bashrc

shopt -s extglob

Il étend les regexes. Vous pouvez ensuite déplacer tous les fichiers sauf un en

mv !(fileOne) ~/path/newFolder

Exceptions par rapport aux autres commandes

Notez que, lors de la copie de répertoires, le forward-flash ne peut pas être utilisé dans le nom comme indiqué dans le fil Why extglob except breaking except condition ? :

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

donc Backups.backupdb/ est faux ici avant la négation et je ne l'utiliserais pas non plus dans les répertoires mobiles à cause du risque d'utiliser à tort alors globs avec d'autres commandes et d'éventuelles autres exceptions.


Si vous utilisez bash et que vous avez le extglob jeu d'options shell (ce qui est généralement le cas) :

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

J'irais avec la méthode traditionnelle find &xargs :

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

-maxdepth 1 fait qu'il ne recherche pas de manière récursive. Si vous ne vous souciez que des fichiers, vous pouvez dire -type f . -mindepth 1 fait qu'il n'inclut pas le ~/Linux/Old chemin lui-même dans le résultat. Fonctionne avec tous les noms de fichiers, y compris ceux qui contiennent des retours à la ligne intégrés.

Un commentaire note que le mv -t option est probablement une extension GNU. Pour les systèmes qui ne l'ont pas

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

Linux
  1. 3 façons de supprimer tous les fichiers d'un répertoire sauf un ou quelques fichiers avec des extensions

  2. Comment supprimer tous les fichiers d'un dossier sauf un fichier spécifique sous Linux

  3. Supprimer tous les fichiers/répertoires sauf un fichier ?

  4. Supprimer tous les fichiers d'un dossier sauf le dernier (le plus récent) 20 ?

  5. Utilisez Rechercher pour trouver certains répertoires et supprimer tous les fichiers qu'il contient sauf un répertoire ?

Supprimez tous les fichiers sauf les 3 plus récents dans le script bash

Comment déplacer tous les fichiers du répertoire courant vers le répertoire supérieur ?

Trouver tous les fichiers de plus d'une minute

Supprimer tous les liens symboliques des fichiers en une seule commande

iptables abandonne toutes les requêtes ICMP entrantes sauf d'une adresse IP

Comment déplacer tous les fichiers et dossiers via la commande mv