删除基于文本文件的目录

时间:2016-07-18 12:32:14

标签: shell scripting sh

假设用户家中有50个目录。我们只想删除某些目录。如果我们创建一个具有要删除的特定目录的文件,是否可以使用脚本根据文件的内容进行删除?我们不希望逐个删除这些,我们不能按日期或其他模式进行删除。

3 个答案:

答案 0 :(得分:3)

是的,当然可以。以下是读取文件的示例:

#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
    echo "Text read from file: $line"
done < "$1"

IFS=''可以防止修剪前导或尾随空格

-r可以防止反斜杠被解释

|| [[ -n $line ]]会阻止您的最后一行被忽略,如果它不以\n

结尾

至于删除,你可以用你喜欢的任何东西代替回声。

答案 1 :(得分:0)

假设您使用的是unix,并且您的文本文件被称为“dirs”,每行有1个目录,您所要做的就是:

cat dirs | xargs rm -rf {\;}

答案 2 :(得分:0)

xargs -r rm -rf <dirs.txt

其中dirs.txt包含目录的名称。