Pages : 1
#1 Le 25/05/2020, à 16:42
- zaienj
Supprimer une list
Bonjour a vous
je souhaite supprimer les fichier qui sont noter sur une liste mais je ne connais pas la commande qui permet de supprimer tout les fichier noter sur ma liste donc si vous pouvez m'aider merci
bien cordialement
Hors ligne
#2 Le 25/05/2020, à 16:47
- Hizoka
Re : Supprimer une list
Salut,
while read fichier
do
[[ -e "${fichier}" ]] && rm "${fichier}"
done < fichier_liste.txt
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 25/05/2020, à 17:14
- Watael
Re : Supprimer une list
les accolades surchargent inutilement : il n'y a pas de concaténation risquant d'être interprétée comme un nom de variable, et pas de Substitution de paramètres.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 25/05/2020, à 17:30
- kamaris
Re : Supprimer une list
xargs -a fichier -d'\n' rm
Hors ligne
#5 Le 25/05/2020, à 17:30
- zaienj
Re : Supprimer une list
xargs -a fichier -d'\n' rm
je comprend pas il faut que je remplace quoi pour y mettre ma list
Hors ligne
#6 Le 25/05/2020, à 17:32
- kamaris
Re : Supprimer une list
fichier
Hors ligne
#7 Le 25/05/2020, à 17:32
- zaienj
Re : Supprimer une list
Salut,
while read fichier do [[ -e "${fichier}" ]] && rm "${fichier}" done < fichier_liste.txt
ça ne marche pas voila mon résulta
./delet.sh: 3: ./delet.sh: [[: not found
./delet.sh: 3: ./delet.sh: [[: not found
./delet.sh: 3: ./delet.sh: [[: not found
./delet.sh: 3: ./delet.sh: [[: not found
Hors ligne
#8 Le 25/05/2020, à 17:34
- zaienj
Re : Supprimer une list
fichier
il me dit :
rm: cannot remove '/var/log/openvpnas.log.1': No such file or directory
alors que je suis en
sudo -s
Hors ligne
#9 Le 25/05/2020, à 17:38
- kamaris
Re : Supprimer une list
sudo n'invente pas les fichiers : si /var/log/openvpnas.log.1 n'existe pas, il ne sera pas possible de le supprimer.
Hors ligne
#10 Le 25/05/2020, à 17:39
- Hizoka
Re : Supprimer une list
C'est un fichier bash et non sh
donc soit tu l'appelles avec : bash ton_fichier.sh
ou tu le rends exécutable et tu ajoutes en 1ere ligne : #!/bin/bash
Watael => Je trouve ça plus lisible et je préfère le mettre par défaut pour éviter les problèmes que tu signales par inattention.
Et pour le coup, ça n'ajoute que 4 caractères au total
EDIT : Avec ma vérification, tu n'auras pas de message d'erreur car il vérifie que le fichier existe avant de lancer la commande rm.
Dernière modification par Hizoka (Le 25/05/2020, à 17:40)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#11 Le 25/05/2020, à 18:04
- Watael
Re : Supprimer une list
les guillemets aussi sont inutiles, entre [[ ]].
d'ailleurs, les double-crochets aussi sont inutiles si tu n'en utilises pas les fonctionnalités avancées.
while read -r fichier
do
test -f "$fichier" && rm "$fichier"
done <fichierList
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#12 Le 25/05/2020, à 20:04
- Hizoka
Re : Supprimer une list
Tu as raison
L'utilisation des crochets est aussi une habitude.
je suis en train de me battre avec mon habitude des " dedans
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#13 Le 25/05/2020, à 20:14
- Watael
Re : Supprimer une list
oui, ça colle un peu au début. Et puis quand tu crois que c'est parti, ça revient, par surprise.
mais, comme j'ai dit, si on n'utilise pas les fonctionnalités avancées (ce qui n'inclut pas la "facultativité" des guillemets) des double-crochets, alors autant rester sur test.
à test simple, simple test.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#14 Le 25/05/2020, à 21:49
- Hizoka
Re : Supprimer une list
Pour le coup, je ne trouve pas que test apporte grand chose, il est très très légèrement plus lent et j’aime bien quand le coté habituel et puissant des crochets.
C'est mon côté psychorigide
0,080 s
time for ((x=1; x<10000; x++)); do [[ -e "caca" ]]; done
0.098 s
time for ((x=1; x<10000; x++)); do test -e "caca"; done
Si ça ne fait pas gagner de temps, autant utiliser le système le plus poussé et puissant afin de le maîtriser au mieux non ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#15 Le 25/05/2020, à 22:28
- Watael
Re : Supprimer une list
hors du contexte actuel, je verrai d'un bon œil [[ -f $fichier && $fichier == *pdf ]]
mais, je ne me vois pas mettre en œuvre des outils dont je n'utilise pas le plein potentiel.
un marteau* pour planter un clou.
mais, si je sais que je vais en planter plusieurs ET que certains seront provisoires, je prends un "marteau de charpentier".
--
* même si il est au fond de la boîte à outils
Dernière modification par Watael (Le 25/05/2020, à 22:29)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
Pages : 1