Réponses:
Si vous avez un fichier par ligne, une façon de procéder est:
tr '\n' '\0' < list_of_files_to_be_deleted.txt | xargs -0 -r rm --
La liste des fichiers est donnée en entrée à la tr
commande qui modifie le séparateur de fichiers de saut de ligne en octet nul et la xargs
commande lit les fichiers séparés par des octets nuls en entrée et lance la commande rm avec les fichiers ajoutés comme arguments.
rm --
au lieu de simplement rm
, afin que les noms de fichiers qui peuvent commencer par un tiret ne soient pas traités comme des rm
paramètres.
monu.txt' Try
tr --help 'pour plus d'informations. rm: opérande manquant Essayez `rm --help 'pour plus d'informations. ........ C'est tout ce que je peux voir
La réponse ci-dessus est bonne en ce sens qu'elle va très loin pour gérer les noms de fichiers avec des espaces et des "caractères étranges". Mais la manière la plus simple, si les noms de fichiers sont sains, est juste (avertissement, bashisme!):
rm $(< /the/file/with/names)
Pour coque régulière:
rm `cat /the/file/with/names`