从包含目录列表的文件中删除目录

从包含目录列表的文件中删除目录

我有一个文本文件中的目录列表,每个目录都需要删除。我如何将该列表读入命令 (rm -rrmdir)?

答案1

“更正确”的解决方案如下:

xargs -I{} rm -r {} < files

这将调用rm -r,其中{}替换为文件名。


为什么?管道文件与空格xargs会导致错误参数。假设您的文件列表如下所示:

/path/to/file 1
/path/to/file_2

然后xargs rm -r < list.txt会尝试删除/path/to/file1/path/to/file_2。这绝对不是您想要的。在从 UNIX / Linux 命令进行管道传输时,请务必注意路径中的空格。

答案2

假设你有路径带有空格在文件 list.txt 中 - 每行一个路径。然后,以下调用 xargs 的方式将保留空格:

cat list.txt | xargs -d \\n rm -r

相关内容