在旧版本的Unix中,rm
如果目录为空,该命令将删除目录。从rm的Research Unix第八版手册页:“如果条目是目录,则只有在为空时才将其删除。” 我喜欢这种行为,所以在我的名字中有了这个别名/etc/profile
:alias rm='rm -d'
我正在使用GNU coreutils版本的rm
,其中-d
告诉rm
您继续删除目录(如果它们为空)。
到目前为止,一切都很好。该别名使我可以rm
像过去一样使用。但是,我想更进一步。我想要rm
即使目录包含其他目录,也可以删除目录,只要目录是唯一目录即可。只要目录中没有任何文件,只是空的(一旦您到达底部)目录,目录结构就可以了,我想rm
将它们全部删除。
是否可以将其写为别名,而该别名仍然可以用作常规rm
文件并删除传递给它的任何文件?
感谢Kevin的建议,但这并不是我想要的行为。如果我跑步
—
WhiteHotLoveTiger 2013年
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;
,我仍然剩下a,a / b2和a / b2 / c2。我想要的只是将顶级(在本例中为a)传递给rm
,并删除它下面的所有内容。
rmdir -p
样