2017-10-18 12 views
-1

J'ai eu du mal avec cela, une partie d'un entretien d'embauche que j'ai trouvé en ligne, mais je n'arrive pas à comprendre. ** Obtenir une liste de chemins vers tous les fichiers PDF et PDF dans le répertoire source .Linux trouver des doublons envoyer des fichiers ajoutés au nouveau répertoire

Pour chaque fichier de cette liste Vérifiez s'il existe un fichier doc correspondant dans le même répertoire .

S'il n'y a rien

S'il n'y a pas

Vérifiez s'il y a déjà un fichier PDF dans le répertoire cible avec ce nom. Si ce n'est pas le cas, copiez le fichier PDF dans le répertoire tel quel.

S'il y a et il n'est pas identique, copiez le fichier PDF pour le répertoire cible mais ajoutez « _ » au nom du fichier. **

Got the pdf avec find, mais la boucle cative les fichiers.

find ../mnt -iname "*.pdf" 

Répondre

0

il y a beaucoup de façons de le faire, mais en commençant par votre commande find

for i in $(find ../mnt -iname "*.pdf"); do z=$(basename -s .pdf $i); echo $z;done 

ceci affichera une liste de noms avec les suffixes enlevés. Ensuite, il est simple à faire quelque chose comme

if [ -e "..mnt/$z.doc" ]; then 

Pour vérifier si le fichier doc est là

+0

Salut, merci pour votre aide, mais tout ce qui arrive est la suivante. – davymac

+0

BusyBox v1.21.0 (2013-02-18 15:57:06 WST) binaire multi-appel. Utilisation: FILE basename [SUFFIX] chemin du répertoire de bande et .SUFFIX de FICHIER – davymac

+0

google ce que basename ne, se rendre compte que le nom de base busybox fonctionne un peu différemment dans elle est la sémantique d'appel à celui que je me sers, puis prendre une conjecture à ce pourrait fonctionner – Vorsprung