En raison des spécificités de mes besoins d'archivage, je ne suis pas à l'aise avec les archives tar.gz solides et j'utilise plutôt 7z.
J'utilise la commande suivante pour ce faire:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*
Pour créer une archive de tout à l'intérieur en ~/my/folder/
tant que ~/my/folder.7z
fichier.
Mais ne ~/my/folder/.hiddenFolder
rentre pas dans les archives alors. Comment régler ceci? N'est pas *
censé renvoyer tous les fichiers et dossiers?
*
, essayez de le supprimer, 7z devrait archiver tout le répertoire.bash
- peut-être que j'utilise "l'expansion du chemin bash" dans le mauvais sens?Réponses:
Si vous voulez le contenu d'un seul répertoire, une méthode simple consiste à y changer d'abord:
Ce que vous avez vu, c'est que
*
la liste des noms de fichiers qui ne commence pas par un.
. C'est le comportement documenté, et c'est la principale raison pour laquelle les fichiers dont le nom commence par un.
sont censés être cachés (l'autre est celuils
qui ne les affiche pas par défaut).Il n'existe aucun moyen portable vraiment pratique de répertorier tous les fichiers d'un répertoire. Vous pouvez utiliser
mais s'il n'y a pas de fichier correspondant à l'un des modèles, le modèle restera non développé. En bash, vous pouvez définir l'
dotglob
option pour éviter de traiter.
spécialement un interligne (.
et..
sont toujours exclus des correspondances):Dans ksh, ou dans bash si vous définissez l'
extglob
option (ou dans zsh si vous définissez l'ksh_glob
option), vous pouvez écrire un modèle qui correspond à tous les fichiers sauf.
et..
:Dans zsh, il y a une façon plus simple de dire que cela
.
ne doit pas être traité spécialement dans un modèle:la source
TL; DR
Plus d'exemples
Exemple de structure de répertoire
Essayez les commandes suivantes
Dossier racine avec tout son contenu.
donne
Pas de dossier racine et pas de fichiers cachés
donne
Pas de dossier racine mais des fichiers cachés sont inclus (c'est ce que nous voulons habituellement)
donne
la source
shopt
.Non,
*
n'est pas censé renvoyer tous les fichiers. Il ne renvoie que les visibles.La solution la plus simple est:
la source