我可以删除目录,然后在单个命令中创建目录吗?

时间:2017-06-23 01:07:51

标签: bash ubuntu

我觉得在一个命令中有以下几种方法可以做:

rm -rf folder_name

mkdir folder_name

这可能吗?

2 个答案:

答案 0 :(得分:2)

不,不是使用标准实用程序(虽然没有什么能阻止你这样的野兽)。

执行此类操作的常用方法是使用条件序列:

#include <vector>
#include <stdexcept>
#include <iostream>

class TrainComposition
{
    std::vector<int> wagons;

    public:   

    void attachWagonFromLeft(int wagonId)
    {
      wagons.insert(wagons.begin(), wagonId);
      std::cout << "attach wagon from left, id is:" << wagonId << '\n';
    }

这将执行rm -rf folder_name && mkdir -p folder_name 然后,如果它返回成功,则重新创建目录。

如果您想要一个简单的“命令”,可以做的一件事就是把它放在一个函数中:

rm

然后一些简单的测试显示它在行动:

remakedir()
{
    [[ -n "$1" ]] && rm -rf "$1" && mkdir -p "$1"
}

答案 1 :(得分:1)

Posix没有一个能够满足您需求的命令。但是以下内容将(大部分)执行您想要的操作(减少目录丢失和/或不可用时的时间窗口。)

制作一个临时目录(以保存您要删除的内容)。

delete=`mktemp -d ./delete.XXXXXX`
folder="folder_name"

将现有文件夹移到一边(以便以后删除)。这是“关键部分”,

mv ${folder} ${delete}/ && mkdir ${folder}

然后删除您方便的(之前的)

if [ -d ${folder} ] ; then rm -rf ${delete}/; fi