我觉得在一个命令中有以下几种方法可以做:
rm -rf folder_name
mkdir folder_name
这可能吗?
答案 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