Mon script shell:modifier le script shell pour supprimer des dossiers ainsi que les fichiers
#!/bin/bash
if [ $# -lt 2 ]
then
echo "$0 : Not enough argument supplied. 2 Arguments needed."
echo "Argument 1: -d for debug (lists files it will remove) or -e for execution."
echo "Followed by some path to remove files from. (path of where to look) "
exit 1
fi
if test $1 == '-d'
then
find $2 -mmin +60 -type f -exec ls -l {} \;
elif test $1 == '-e'
then
find $2 -mmin +60 -type f -exec rm -rf {} \;
fi
En gros, cela trouvera des fichiers dans un répertoire donné fourni comme second argument et aucune des deux listes (-d pour l'argument 1) ou supprimer (-e pour l'argument 1) fichiers modifiés il y a> 60 minutes.
Comment puis-je retravailler cela pour supprimer également des dossiers?
Oh, je suis désolé de perdre votre temps. Merci. – Chris
Vous pouvez combiner les '-types':' find $ 2 -mmin +60 \ (-type f -o -type d \) -exec ls -ld {} \; ' –
Attention: ceci peut ne pas faire ce que vous voulez: les répertoires (y compris $ 2 lui-même) seront supprimés même s'ils contiennent des fichiers/sous-répertoires actifs, si le répertoire lui-même n'a pas été modifié depuis une heure. Éviter ce problème est ... plus compliqué, surtout en mode de fonctionnement à sec. –