GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déplacer tous les fichiers, y compris les fichiers cachés, dans le répertoire parent via *

Je pense que c'est le plus élégant, car il n'essaie pas non plus de déplacer .. :

mv /source/path/{.[!.],}* /destination/path

Vous pouvez trouver un ensemble complet de solutions à ce sujet dans la réponse d'UNIX et Linux à Comment déplacez-vous tous les fichiers (y compris cachés) d'un répertoire à un autre ?. Il montre des solutions dans Bash, zsh, ksh93, sh standard (POSIX), etc.

Vous pouvez utiliser ces deux commandes ensemble :

mv /path/subfolder/* /path/   # your current approach
mv /path/subfolder/.* /path/  # this one for hidden files

Ou tous ensemble (merci pfnuesel):

mv /path/subfolder/{.,}* /path/

Qui s'étend à :

mv /path/subfolder/* /path/subfolder/.* /path/

(exemple :echo a{.,}b se développe en a.b ab )

Notez que cela affichera quelques avertissements :

mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory

Ignorez-les simplement :cela se produit parce que /path/subfolder/{.,}* se développe également en /path/subfolder/. et /path/subfolder/.. , qui sont le répertoire et le répertoire parent (Voir Que signifient "." et ".." dans un dossier ?).

Si vous souhaitez simplement copier, vous pouvez utiliser un simple :

cp -r /path/subfolder/. /path/
#                     ^
#                     note the dot!

Cela copiera tous les fichiers, normaux et cachés, depuis /path/subfolder/. se développe en "tout de ce répertoire" (Source :Comment copier avec cp pour inclure les fichiers cachés et les répertoires cachés et leur contenu ?)


Cela déplacera tous les fichiers vers le répertoire parent comme prévu, mais ne déplacera pas les fichiers cachés. Comment faire ?

Vous pouvez activer dotglob :

shopt -s dotglob               # This would cause mv below to match hidden files
mv /path/subfolder/* /path/

Pour désactiver dotglob , vous devez dire :

shopt -u dotglob

Linux
  1. Comment supprimer tous les fichiers avec une extension particulière dans un dossier particulier ?

  2. Comment déplacer tous les fichiers source Java vers leur répertoire de packages respectif ?

  3. Répertorier de manière récursive tous les fichiers d'un répertoire, y compris les fichiers des répertoires de liens symboliques

  4. Comment déplacer (et écraser) tous les fichiers d'un répertoire à un autre ?

  5. Comment trouver tous les fichiers avec un répertoire parent particulier sous Linux ?

Comment changer toutes les occurrences d'un mot dans tous les fichiers d'un répertoire

Comment répertorier la taille du répertoire de tous les répertoires enfants ?

Comment déplacer des fichiers et des répertoires vers le dossier parent sous Linux ?

Comment puis-je copier de manière récursive tous les fichiers pdf d'un répertoire (et de ses sous-répertoires) dans un seul répertoire de sortie?

Comment supprimer tous les fichiers d'un répertoire sauf certains ?

Comment trouver tous les fichiers de zéro octet dans le répertoire