web-dev-qa-db-fra.com

Comment copions-nous des fichiers qui ne sont nommés qu'au format de hachage

J'ai une liste d'un fichier dans un répertoire1 et j'ai besoin de copier le seul fichier de hachage existant dans un autre répertoire2. Comment puis-je le faire en utilisant un script? pour tout autre fichier avec un nom normal, je peux le faire, mais qu'en est-il du hachage? avons-nous besoin d'analyser pour ce faire? le nom du fichier est sous cette forme e6a0feaeh74b94f91419795647be61801b06ecec912087c14907da77f90d6e1a

1
ludo

Donc, si les autres fichiers n'ont pas de chiffres, c'est-à-dire 0123456789, dans le nom comme vous l'avez dit, alors quelque chose comme ça ferait probablement ce que vous voulez

#!/bin/bash
pattern="[0-9]"

for fn in ./* ; do
    if [[ $fn =~ $pattern ]]; then
        cp $fn ./directory2/
    fi
done

Remplacez simplement/directory2/par le répertoire de destination correct dans lequel vous souhaitez copier le fichier.

NB: Il s'agit d'un script très rudimentaire, il nécessite également que vous soyez dans le répertoire lorsque vous l'exécutez. Cela pourrait faire un peu de polissage, alors modifiez-le selon vos besoins.

0
nobody special

Je suppose que vos noms de fichiers ont 64 caractères (∈ lettres ou chiffres minuscules).

En utilisant Perl, vous pouvez exécuter quelque chose comme

Perl -e 'for (grep(/^[a-z0-9]{64}$/,<*>)){`mv $_ directory2/`}'
  • <*> Développez pour tous vos fichiers,
  • grep(/^[a-z0-9]{64}$/, ...) sélectionne les 64 longs
0
JJoao