在Bash中打印所有关键字

时间:2017-03-27 19:51:58

标签: linux bash shell

我需要创建一个脚本来删除许多文件,但这是一个非常广泛的命令来处理Linux,为此我决定用“rm -rf key *”删除但是首先我找不到如何创建此功能可打印从A到Z的所有aetas

如果我可以创建一个循环,我将能够完成任务并继续构建我的脚本。

1 个答案:

答案 0 :(得分:1)

不确定你正在寻找什么,但我曾经有一个类似的shell脚本:

ns="/path/to/file.extension,/path/to/directory,/path/to/something*";
IFS=',';
read -a path <<< "${ns}";
nr="${#path[@]}";
start="0";

for (( i = ${start}; i <=${nr}; i++ )); do
    echo "Starting fast-delete round $i of $nr, deleting ${path[$i]}";
    rm -rf ${path[$i]};
    echo "Done with round $i, deleted ${path[$i]}";
done;

您可以根据自己的喜好扩展ns列表,并且还允许将asterix-characters用作通配符。因此/path/to/*匹配/path/to中的所有文件和文件夹。但要小心,因为如果在指定路径中出现任何错误,这是非常不可原谅的。因此,您可以轻松地删除更多,然后您讨价还价。

风险是你的(应该提到这一点)

PS:我自从创建了一个GUI-python脚本,可以进行更多的微调。如果你想学习编码,这是一个很好的挑战。

编辑(见评论):

根据你的评论判断,你的意思是这样吗?

for x in {a..z}
do
    rm -rf /home*/${x}*/mail/*/*/.Trash/cur/*
done

这将执行:

rm -rf /home*/a*/mail/*/*/.Trash/cur/*rm -rf /home*/b*/mail/*/*/.Trash/cur/*等等。