6 votes

Comment ne tarir que les fichiers d'un répertoire en fonction d'un nom de fichier spécifique ?

Je veux créer une boule de tar et inclure seulement les fichiers dans le répertoire qui commencent par un nom de fichier spécifique. Par exemple, j'ai des pommes-x.x.x et des oranges-x.x.x, et je veux seulement tar les fichiers commençant par "apple". Comment puis-je faire cela ?

Gracias.

9voto

Yange Wang Points 21

Peut-être quelque chose comme ça :

find / -type f -name "apple*" -exec tar -rf archive.tar '{}' \;

C'est mieux que tar cf /path/tarfile appl* car on ne peut pas archiver un répertoire avec le motif apple*.

8voto

MadHatter Points 77602

Ummm, j'ai peut-être oublié quelque chose, mais pourquoi pas

tar cf /path/tarfile appl*

A moins que vous n'ayez des répertoires qui s'appellent aussi ./appl* Dans ce cas, ils seront recherchés, avec leur contenu, ce qui devrait suffire. Si c'est le cas, vous pouvez arrêter cela avec --no-recursion .

1voto

Andy Points 1984

Qu'en est-il

find / -type f -name "apple*" -exec tar -cf archive.tar '{}' \+

? De cette façon, il transmettrait tous les noms de fichiers à tar en une seule fois (cf. -exec command {} + sur la page de manuel find).

0voto

Dilhan Points 1

Pour plusieurs fichiers avec des motifs différents, on pourrait utiliser

find ./ -type f \( -name "apple*" -o -name "orange*" -o -name "berries*" -o -name "lemons*" \) -exec tar -cf archive.tar '{}' \+

Ceci est basé sur les réponses de B14D3 et al0, et le lien ici : https://www.tecmint.com/linux-find-command-to-search-multiple-filenames-extensions/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X