1 votes

Trouver un script shell pour exécuter une commande pour chaque fichier

J'ai trouvé que la commande "find" est beaucoup plus rapide que "Spotlight" dans mac os x je préfère visualiser les résultats avec automator sans succès alors j'espère que les geeks autour de SU vont m'aider avec une solution à ce sujet

un shellscript.sh searchphrase exécute :

  1. crée un dossier sur le bureau "Résultats" s'il n'est pas déjà là

  2. supprime tout dans ce dossier (résultats récents)

  3. pour chaque résultat créer un lien symbolique

merci

1voto

Voici une version avec quelques améliorations.

  • Ne incluez pas votre nom d'utilisateur dans le script, utilisez ~ pour faire référence à votre répertoire personnel.

  • Stockez le nom du répertoire des résultats dans une variable. Cela illustre comment utiliser une variable dans un script shell.

  • Rendez la partie qui supprime le résultat d'une recherche précédente plus robuste : elle ne supprimera rien qui n'est pas un lien symbolique.

  • Le plus important : votre version échouerait avec des noms de fichiers contenant des espaces ou des caractères spéciaux, car le shell reparsede le résultat de $(...) et $file. Vous devriez toujours mettre les substitutions de variables entre guillemets doubles (c'est-à-dire écrire "$file"). Ma version fonctionne correctement avec tous les noms de fichiers (sauf s'ils contiennent des sauts de ligne, mais c'est inévitable avec locate).

    !/bin/bash

    results_dir=~/Desktop/results mkdir -p "$results_dir" find "$results_dir" -type l -exec rm {} + echo "Veuillez saisir une entrée : " read -r input_variable locate "$input_variable" | while read -r line; do ln -s "$line" "$results_dir/"

0voto

user45025 Points 111

Mon progrès:

#!/bin/bash
rm -rf /Users/arpecop/Desktop/results/
mkdir /Users/arpecop/Desktop/results/
echo "Veuillez saisir une entrée: "
read input_variable
for file in $(locate "$input_variable")
do
ln -s $file  /Users/arpecop/Desktop/results/
done

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