Quelle syntaxe dois-je utiliser dans un script bash pour lister les fichiers basé sur 3 valeurs dynamiques: - plus de X jours - dans un répertoire spécifié - dont le nom contient une chaîne spécifiée ?bash: Comment délimiter les chaînes pour trouver les fichiers
FILEAGE=7
FILEDIR='"/home/ecom/tmp"'
FILESTRING='"search-results-*"'
FILES_FOR_REMOVAL=$("/usr/bin/find "${FILEDIR}" -maxdepth 1 -type f -mtime +${FILEAGE} -name "${FILESTRING}" -exec ls -lth {} \;")
echo ${FILES_FOR_REMOVAL}
Si j'essaie ci-dessus je reçois:
-bash: /usr/bin/find "/home/ecom/tmp" -maxdepth 1 -type f -mtime +7 -name "search-results-*" -exec ls -lth {} \;: No such file or directory
Et rappelez-vous qu'une fois que vous mettez la sortie de trouver en une seule chaîne en utilisant $(), vous ne pouvez plus différencier les noms de fichiers séparés. Lire http://wooledge.org/mywiki/UsingFind – lhunath